Comment faire correspondre le mot uniquement entre parenthèses
Contribution :
this is (test.com)
Sortie désirée:
test.com
grep
regular-expression
Rahul Patil
la source
la source
Réponses:
Voici quelques options qui impriment toutes la sortie souhaitée:
Utilisation
grep
avec le-o
drapeau (n'imprimer que la partie correspondante de la ligne) et les expressions régulières compatibles Perl (-P
) qui peuvent faire des contournements :Cette expression régulière pourrait nécessiter quelques explications:
(?<=\()
: Ceci est un lookbehind positif , le format général est(?<=foo)bar
et qui correspondra à tous les cas debar
recherche juste aprèsfoo
. Dans ce cas, nous recherchons une parenthèse ouvrante, nous utilisons donc\(
pour y échapper.(?=\))
: Ceci est une anticipation positive et correspond simplement à la parenthèse fermante.L'
-o
option de legrep
fait imprimer uniquement la partie correspondante de n'importe quelle ligne, nous recherchons donc tout ce qui est entre parenthèses, puis les supprimons avecsed
:Analysez le tout avec Perl:
Analysez le tout avec
sed
:la source
Une approche consisterait à utiliser PCRE - Expressions régulières compatibles Perl avec
grep
:Les références
la source