chargement de regexp, UTF-8 vs ASCII

chargement de regexp, UTF-8 vs ASCII - C - Programmation

Marsh Posté le 23-02-2010 à 06:30:19    

salut a tous
 
j'ai un programme en C qui charge une regex specifiee dans un XML via xmlGetProp() en libxml2
mon XML est encode en UTF-8
 
maintenant, ma regexp est (je crois) en style ascii, cad [a-zA-Z0-9] pour les caracteres alphanumeriques par exemple
 
si je donne a mon prog en C la regex en hardcodant

Code :
  1. char* regex = "[a-z]+";


j'ai un match
 
en revanche si je la charge depuis mon XML j'ai pas de match
 
qqn saurait il comment resoudre ca?
 
j'aimerais rester en tout- UTF8 pour des raisons de proprete evidentes (donc avoir un XML en ascii n'est pas une option)
 
 
merci d'avance

Reply

Marsh Posté le 23-02-2010 à 06:30:19   

Reply

Marsh Posté le 23-02-2010 à 09:44:30    

L'UTF-8 pour les caractères alphanumériques normaux a le même encodage que l'Ascii (voir http://fr.wikipedia.org/wiki/UTF-8). Mais cela ne veut pas dire que ce soit forcément de l'Ascii. l'UTF-8 se démarque de l'Ascii pour les caractères accentués et autres caractères non américains.
 
Cela dit, quelle est la question ?

Reply

Marsh Posté le 23-02-2010 à 15:28:04    

ma regex ne contient que des caracteres alphanumeriques, un trait d'union et le symbole $
 
la question est:
 
que dois je modifier (la regex, son chargement dans un char*, sa compilation?) pour faire un match?

Reply

Marsh Posté le 23-02-2010 à 15:49:52    

bon c'est ma faute
 
il fallait que je quadruple les backslash dans mon XML au lieu des les doubler :)

Reply

Marsh Posté le 23-02-2010 à 15:54:25    

pardon c'est l'inverse, 2x moins de \ dans le XML que dans le char* :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed