10
votes

Dois-je échapper à un point-virgule dans une expression régulière Perl?

Quelqu'un me dit que j'ai besoin d'échapper à un point-virgule dans une expression régulière Perl. C'est-à-dire, pour correspondre à une ligne contenant un point-virgule, je devrais utiliser / \; / et non /; / . .

D'après ce que j'ai lu, le point-virgule n'a aucune signification particulière dans une expression régulière littéral, alors l'échappatoire semble inutile. J'ai fait des expériences et /; / semble fonctionner correctement. Avec des avertissements allumés et que le utilise strict; pragma en vigueur, perl ne se plaint pas.

y a-t-il une raison pour laquelle / \; / est meilleur que /; / ? Est-ce que cette version dépend de la version?


0 commentaires

6 Réponses :


1
votes

Il n'est pas nécessaire de l'échapper.


0 commentaires

14
votes

Il n'y a absolument pas besoin d'échapper à un point-virgule dans un modèle d'expression régulier. Il n'y a pas eu un tel besoin depuis près de dix ans que j'ai utilisé Perl et je doute qu'il y ait jamais été.

Un résumé concis de caractères spéciaux et de séquences d'échappement peut être trouvé dans perdoc perlreref .


0 commentaires

1
votes

non. /; / devrait toujours fonctionner simplement bien.


0 commentaires

3
votes

Peut-être que c'est une habitude développée à partir d'utiliser Perl One-Linders sur la ligne de commande et de ne pas citer, donc le '; diviser le reste dans une autre commande? Quoi qu'il en soit, comme tout le monde dit, pas besoin.


1 commentaires

@Jefromi hmmmm ... ça sonne comme une bonne supposition. J'ai été perdu quant à la raison pour laquelle quelqu'un penserait qu'il y avait un tel besoin.



5
votes

Peut-être que quelqu'un pense que le point-virgule a besoin de s'échapper parce que la mise en évidence de la syntaxe de leur éditeur est confondue par le point-virgule intégré. Dans mon expérience, la plupart des éditeurs ont beaucoup de difficulté à faire face à la syntaxe de Perl. N'oubliez pas que Seul Perl peut analyser Perl .


1 commentaires

WOW, PPI a l'air génial. Et c'est un excellent exemple de documentation bien écrite, notamment une bonne description de la raison pour laquelle il est si difficile d'analyser Perl.



0
votes

Yep, le point-virgule n'est pas un personnage méta, alors je suppose que cela n'a pas besoin d'être échappé.


1 commentaires

@sinan parce que je n'ai pas vérifié avant de répondre :)