2010-02-23 6 views
2

J'ai une fonction que je l'ai utilisé un tas de fois dans différents fichiers qui a une signature comme:Expression régulière avec les langues étrangères

Translate("English Message", "Spanish Message", "French Message") 

et je suis désireux de tirer les Anglais, les messages espagnols et français puis les sortir dans un csv pour que les gens qui connaissent réellement ces langues puissent me dire ce que je devrais y mettre.

De toute façon, ce que je rencontre, c'est que certains messages en français et en espagnol ne s'affichent pas en raison des caractères accentués et des guillemets simples.

Ceci est un programme vb.net.

Modifier

Il n'y avait pas de problème avec la langue, ma question était en fait l'expression régulière et mon manque complet de compréhension des expressions régulières.

+3

Quelles langues (programmation)? – kennytm

+1

Pendant que vous y êtes, vous devriez faire le programme * read * de ces fichiers CSV (ou utiliser une solution standard de localisation/globalisation/peu importe). Garder les traductions dans le code est une très, très mauvaise idée. –

+0

-1 pour ne pas spécifier l'environnement/la langue utilisée. Si vous n'êtes pas au courant de UTF-8 et Unicode maintenant, il est temps d'apprendre. –

Répondre

1

Dépend de la bibliothèque regex que vous utilisez. Les implémentations de regex Sane utilisent UTF-8 et n'ont pas de tels problèmes, mais plus de détails seraient utiles sur le langage que vous utilisez, quelle bibliothèque regex, etc

1

S'il y a un indicateur DOTALL dans l'implémentation de regex de votre langue, vous voudrez peut-être pour le définir.

Vous pouvez également changer la regex pour capturer une classe de caractères niée à la place, comme ceci:

([^your_delimiter]*?) 

avec your_delimiter étant le caractère (s) suivant immédiatement la chaîne que vous voulez capturer.

Voir cette discussion plus:

http://en.wikipedia.org/wiki/Regular_expression#Unicode