.Net regex: quel est le caractère de mot \w?
Question Simple:
Quel est le motif de la parole de caractère \w
en c#, .net?
Ma première pensée a été qu'il correspond à [A-Za-z0-9_]
et la la documentation me dit:
classe de Caractères de la Description Modèle Correspond à \w Correspond tout \w "I", "D", "A", "1", "3" caractère de mot. dans "ID A1.3"
qui n'est pas très utile.
Et \w
semble correspondre à äöü
, trop. Quoi d'autre? Est-il mieux (exact) définition disponible?
Vous devez vous connecter pour publier un commentaire.
De la la documentation:
Voir aussi
\w+
ce pourrait correspondre à n'importe quel mot n'importe comment fou tant qu'il est contenu sont soit inférieurs,des lettres majuscules, des chiffres de 1 à 9 et quelques (10) caractères spéciaux (comme l' _ blanc souligné). Et serait un raccourci pour écrire quelque chose comme[a-zA-Z1-9_]+
Fondamentalement, il correspond à tout ce qui peut être considéré comme la définition intuitive de lettre dans divers scripts – plus le trait de soulignement et quelques autres énergumènes.
Vous pouvez trouver une liste complète (au moins pour le BMP) avec les minuscules PowerShell extrait de:
Donc, après quelques recherches à l'aide de '\w'.NET est équivalent à:
J'ai écrit cela comme une extension de la méthode pour être facile à utiliser sur n'importe quel caractère
c
il suffit d'invoquerc.IsWord()
qui sera de retourtrue
si le caractère est un caractère de mot. Ce devrait être beaucoup plus rapide que d'utiliser une Regex.Il est intéressant de noter, cela ne semble pas correspondre à la .NET spécification, en fait, '\w' match 938 'NonSpacingMark" des personnages, qui ne sont pas mentionnés.
Au total, cela correspond à 49,760 de 65 535 caractères, de sorte que la simple regex est souvent affichés sur le site sont incomplètes.