regexp avec la russie lang
Je ne peux pas résoudre mon problème avec les regexp.
Ok, quand je tape:
$string = preg_replace("#\[name=([a-zA-Z0-9 .-]+)*]#","$name_start $1 $name_end",$string);
tout est ok, sauf situation de la langue russe.
donc, j'ai essayer de ré-type de cette reg-exp:
$string = preg_replace("#\[name=([a-zA-Z0-9**а-яА-Я** .-]+)*]#","$name_start $1 $name_end",$string);
mais cela ne fonctionne pas,
je sais que certains d'idée, il suffit d'écrire:
$string = preg_replace("#\[name=([a-zA-Z0-9йцукенгшщзхъфывапролджэячсмитьбю .-]+)*]#","$name_start $1 $name_end",$string);
mais c'est fou 😀
s'il vous plaît, donnez-moi simple variante
...l'une des raisons pour lesquelles je suis content que je ne suis pas russe 😛
OriginalL'auteur vorobey | 2009-10-15
Vous devez vous connecter pour publier un commentaire.
Essayer Unicode gamme:
N'oubliez pas l'option /u pour Unicode.
Dans votre cas:
Remarque que les ÉTOILES dans votre regex est redondante. Déjà tout est "mangé" par le PLUS. Ce serait faire la même chose:
Thaks pour ce code!
c'est mauvais, parce que c'est illisible! Le Code doit être simple et lisible 🙂
Je pense que vous vouliez dire
\x{0401}-\x{042f}
de mots russes.A
est en effet le premier caractère de l'alphabet russe, mais pas dans la palette unicode. Vérifiez le tableau unicode iciOnofrei, ouais, je vais en effet voir
\x{0401}
là, mais à ne pas voir la gamme\x{0402}-\x{0409}
. Doit-il alors être[\x{0401}\x{0410}-\x{042F}]
, ou vraiment[\x{0401}-\x{042F}]
? N'hésitez pas à modifier, bien sûr!OriginalL'auteur Bart Kiers
La commune unicode script (prise en charge depuis pcre 3.3) fournit un test pour la propriété Cyrillique.
par exemple remplacer tous les caractères cyrillique ni (latin) chiffres:
Vous pouvez trouver la documentation de cette fonction en vertu de http://www.pcre.org/pcre.txt "propriétés des caractères Unicode".
Et vous devez spécifier le PCRE8 drapeau (u) tel que décrit à http://docs.php.net/reference.pcre.pattern.modifiers
Autant que je sache, il n'y a pas (technique) les différences entre la "commune" de scripts et de spécifier les plages "manuellement". C'est donc uniquement une question de choix. Sauf peut-être que les noms de propriété sont un peu plus l'auto-documentation.
OriginalL'auteur VolkerK
Cette une a fonctionné pour moi:
Je l'ai testé dans tous les navigateurs y compris Safari
OriginalL'auteur Kissa Mia