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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
/<td class="fins_title2">(\p{Han}+)#\(([ a-z]+)\)<\/td>/i
C'est là que j'obtiens l'erreur.

Maintenant, en simplifiant la regex :

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 ?????)
Bref, je trouve que c'est assez du délire, et je comprends vraiment rien à l'histoire...

Merci d'avance pour votre aide.