Question Utilisation de modificateurs de regex compatible Perl (PCRE) dans grep


Selon grep --help et man grep, nous pouvons utiliser le -P option pour interpréter le motif comme une expression régulière Perl (PCRE, pour être précis), au lieu de la valeur par défaut Expressions régulières de base POSIX (BRE).

En langage Perl, divers Modificateurs peut être ajouté à l'expression, afin d'ajuster l'interprétation du motif (dans la syntaxe de /pattern/modifiers).

Alors, comment quelqu'un peut-il ajouter des modificateurs à l'expression régulière Perl de grep? J'ai essayé quelques variantes comme grep -P "/^got.it$/ms" [FILE] mais les résultats de la recherche étaient erronés.

Cependant, à propos de l'interprétation PCRE, le manuel indique que:

Ceci est très expérimental et grep -p peut avertir de fonctionnalités non implémentées.

Est-il possible que l'outil grep ne supporte pas du tout les modificateurs?

Par ailleurs, j'ai remarqué que l'on peut effectuer une correspondance de modèle insensible à la casse en utilisant -i option, qui est un exemple de modificateur.


16
2018-01-25 14:07


origine


Crossposted: unix.stackexchange.com/questions/110875/… - goldilocks


Réponses:


Pour les modificateurs imsxadlup vous pouvez utiliser le (?X) pour comme décrit dans Motifs étendus:

$ echo FOO | grep -P '(?i)foo'
FOO

14
2018-01-25 14:39



Incroyable, merci! - Reflection