Bonjour à tous,
Débutant en Perl, je rencontre un soucis lors de l'évaluation d'une expression régulière avec des caractères chinois. J'ouvre bien le fichier en UTF-8, mais je rencontre le message suivant lors de l'exécution du script :
panic: reg_node overrun trying to emit 63.
Après quelques recherches, je n'arrive pas à comprendre le sens du message d'erreur. Et après quelques tests appronfondis, j'arrive à des trucs complètement bizarre :
Mon fichier contient la ligne suivante :
<tr><td class="fins_title1"><B>Address</B></td><td class="fins_title2">山东省枣庄市邳庄村#(ShanDongShengZaoZhuangShiZuoZhuangCun)</td></tr>
Et il me faut extraire l'adresse en Chinois et celle en Pinyin. J'utilise pour ça un regex :C'est là que j'obtiens l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part /<td class="fins_title2">(\p{Han}+)#\(([ a-z]+)\)<\/td>/i
Maintenant, en simplifiant la regex :
Bref, je trouve que c'est assez du délire, et je comprends vraiment rien à l'histoire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /<td class="fins_title2">(\p{Han}+)/i => Même erreur /ss="fins_title2">(\p{Han}+)/i => Même erreur /s="fins_title2">(\p{Han}+)/i => OK (??????? pourquoi ?????) /ss="fins_title2">(.+)/i => OK (A cause des charactères chinois qui passent pas ?????)
Merci d'avance pour votre aide.
Partager