2009-09-09 8 views
1

Types de systèmes d'écriture:expressions régulières et de multiples systèmes d'écriture

  • Alphabet
  • abjad
  • Abugida
  • Syllabary
  • logographie

Dans les expressions régulières dont nous avons besoin de dire qui "chars" nous voulons valider:

Nous utilisons quelque chose comme ceci a-zA-Z0-9 pour dire que nous acceptons tous les caractères alphanumériques.

Comment pouvons-nous faire des expressions régulières qui valident d'autres systèmes d'écriture non-alphanumériques? (comment puis-je faire une expression régulière qui validera chinois ou indien, grec ou russe, ou someother

MISE À JOUR:

en utilisant le moteur ASP.NET regex

Si vous n ». t l'esprit, pourriez-vous me donner quelques exemples?

Merci

Répondre

2

Quel est le moteur de regex utilisez-vous? Si vous utilisez Java ou .NET, il y a beaucoup de différentes catégories unicode vous pouvez utiliser, tels que \p{InGreek}.

Une autre solution, peut-être plus générique, consiste à utiliser les plages unicode. Ce page contient une liste de plusieurs gammes Unicode bien connues. Par exemple, si vous voulez faire correspondre un caractère tibétain, vous utiliserez [\u0F00-\u0FFF]. Si vous voulez faire correspondre un caractère tibétain et des caractères anglais, vous pouvez utiliser [A-Za-z\u0F00-\u0FFF], et cetera.

Si vous souhaitez faire correspondre plusieurs langues, vous pouvez utiliser la page que j'ai mentionnée pour rechercher la plage unicode des langues et les combiner. Par exemple, la gamme Unicode [\u0370-\u06FF] couvre le grec, le cyrillique (utilisé dans les langues russes et d'autres langues slaves), l'hébreu et l'arabe. Si vous avez besoin de plus, ajoutez simplement les plages dont vous avez besoin jusqu'à ce que toutes les langues soient couvertes.


EDIT: D'après vos commentaires, vous pouvez simplement utiliser l'expression suivante:

@"\p{L}{4,10}" 

\p{L} ou \p{Letter} est utilisé pour correspondre à une lettre de toute langue ainsi, la L'expression ci-dessus correspond à 4 à 10 lettres de n'importe quelle langue.

+0

Est-il possible d'avoir une seule expression régulière pour correspondre à toutes les langues? Au moins pour voir s'ils écrivent quelque chose entre 4 à 10 caractères?(Ceci est l'expression de base). – Dryadwoods

0

+1 à @JG Vous pouvez également utiliser des classes de jeu de caractères prédéfinies. Si l'option ECMAScript n'est pas spécifiée, alors \ w est traité comme n'importe quel caractère de mot - pour unicode est "ce que le médecin a ordonné". Le même \ d est des chiffres décimaux et ainsi de suite.

Questions connexes