Code simple:
(?^u:(?^u:(?^u:(?^u:(?^u:^\w$)))))
mais je ne peux pas enregistrer le regex compilé pour l'utilisation ultérieure, car dans chaque compilation, la regex a été étendue avec le (? ^ u :, donc après plusieurs cycles, je suis terminé par: P> xxx pré>
Par conséquent, la question est la suivante: p>
4 Réponses :
Il suffit de lire que voici une autre réponse pour «l'utilisation de ...». Thanx Daxim aussi - malheureusement accepter un seul ..
Bien que je voudrais simplement conserver la copie de la chaîne autour de l'utilisation des données, puis compiler une copie lorsque je devais l'utiliser, vous pouvez également utiliser le Regexp_pattern fonction du module CORE impression p> RE CODE> Pour renvoyer le motif utilisé pour créer une regex compilée:
C'est exactement ce dont j'ai besoin. Travailler avec Perl au-dessus de 5,10 - si bien ...;) Thanx!
Ce n'est pas ce qu'il imprime, du moins pas en 5.14.
@ikegami => J'ai 5.10.1 ici au travail, et c'est exactement ce qu'il imprime. En outre, il n'a pas échoué pour qr / foo \ / bar / code> il renvoie simplement une valeur qui ne répond pas à ceux qui citent des caractères ...
De la documentation sur REGEXP_PATTERN : dans la liste contextuelle, il renvoie une liste de deux éléments, la premier élément contenant le motif et la seconde contenant les modificateurs utilisés lorsque le motif a été compilé. CODE> Lorsque vous testez, j'ai trouvé que les deux exemples mentionnés ci-dessus imprimer une liste, où le deuxième élément est
u code> u code> .
Peut-être aussi simple que:
Méfiez-vous, Version incohérente: Stackoverflow.com/q/8082617#COMMENT-10190574
L'original est un opérateur em>, pas un motif de regex. En ce qui concerne la première valeur renvoyée par regexp_pattern code> (le modèle) entraîne une perte d'informations. Vous devez également regarder le second (les drapeaux).
use re qw( regexp_pattern );
my ($pat, $flags) = regexp_pattern($re);
$pat =~ s{/}{\\/}g;
say qq{qr/$pat/$flags};
Je compile mes regexs sans drapeaux, la version simple Eric Erics est suffisante pour moi. Quoi qu'il en soit, merci beaucoup pour l'explication détaillée !!!
@ JM666, encore une fois, si vous le savez, pourquoi avez-vous besoin d'extraire le modèle d'origine d'un re?
Vous dites que vous avez lu le modèle à partir d'un fichier, vous avez donc ce que vous voulez enregistrer dans un fichier, alors pourquoi ne pas l'enregistrer?