est-il possible de majusculer le premier caractère de chaque mot à l'aide de Regex? P>
Je vais utiliser ceci dans vb.net (SSIS) P>
9 Réponses :
Vous pouvez le faire, mais il s'agit d'une fonction assez courante dans la plupart des langages de programmation. Par exemple, la fonction est UCWords ($ Word) dans PHP. P>
Je n'ai jamais utilisé php, mais ne vous souvenez pas de cette méthode dans d'autres langues que j'ai utilisées, bien que je puisse tout ce que je n'aurais tout simplement pas remarqué.
s/\b(\w+)\b/ucfirst($1)/ge
Nice et facile - s / \ b (\ w +) / \ u $ 1 / g code> ou
s / \ b (\ w) / \ u \ 1 / g code> pour court. Malheureusement, la question spécifie maintenant vb.net, de sorte que cette réponse perl n'est plus pertinente ...
pas dans "pure" regex, mais la plupart des implémentations spécifiques à la plate-forme ont un moyen de le faire:
Par exemple, en Python: P>
import re re.compile(r'\b\w').sub(lambda x: x.group(0).upper(), 'hello')
string input = "The quick brown fox jumps over the lazy dog";
string pattern = @"\b(\w|['-])+\b";
string result = Regex.Replace(input, pattern,
m => m.Value[0].ToString().ToUpper() + m.Value.Substring(1));
Dans quels scénarios sont Lambdas non disponibles dans vb.net et / ou c # s'il vous plaît?
@Magnussmith Lorsque vous utilisez les versions qui ne les ont pas soutenues, nommément C # 2.0 et VB.NET 8.0 (généralement associée à Visual Studio 2005 et .NET 2.0).
.NET a une prise en charge intégrée. Voir textinfo.totitlecase pour la documentation.
Mon code contient des méthodes d'extension pour C #. Je suppose que vb.net les a aussi, mais je ne sais pas assez bien vb.net pour les convertir moi-même. P>
Pourquoi ne pas simplement utiliser l'inBuge textinfo.totitlecase ( ) Méthode déjà dans la framework .NET?
string capitalized = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase("this string should be capitalized!");
Ne savait pas à ce sujet. Pourrait être une excellente solution pour moi. Merci!
Juste une note rapide ici. Pour que la première lettre de chaque mot est capitalisée, vous devez d'abord convertir la chaîne d'origine en minuscules. Ma chaîne d'origine était toutes des capuchons et .totitlecase code> ne semblait pas avoir un effet.
Dim s As String = "your string" Dim s2 As String = StrConv(s, VbStrConv.ProperCase MessageBox.Show(s2)
Utiliser            P> P> propérase code> fonction:
Faites cela sur Clé Appuyez sur l'événement de votre zone de texte.
If e.KeyChar <> ChrW(Keys.Back) Then If txtEname.Text = "" Then e.KeyChar = UCase(e.KeyChar) End If End If
Vous devriez spécifier un langage de programmation ou demander une réponse agnelle agnostique.
@Jeremy: J'ai ajouté l'équivalent VB.NET à ma réponse