использование выражений grep regex с несколькими условиями - PullRequest
2 голосов
/ 16 мая 2019

Поэтому я пытаюсь найти код, который проверяет

  1. , если строка имеет повторяющийся символ в начале предложения, и

аа ....., бб .....

если строка заканчивается повторяющимся символом.

.... аа, ..... bb

Я пытаюсь объединить два условия и посмотреть, есть лииз строк в моем текстовом файле соответствуют условиям.

до сих пор я узнал об использовании egrep

, и с его помощью я мог бы выполнить первую часть алгоритма

egrep '^(.)\1{1}' *.txt

, но когда я попытался объединить его свторая часть,

egrep '^(.)\1{1}|(.)\1{1}$' *.txt

вторая часть игнорируется, и результат такой же, как и раньше.

Что можно сделать, чтобы объединить несколько шаблонов в регулярное выражение?

1 Ответ

1 голос
/ 16 мая 2019

При чередовании вы должны ссылаться на группу 2 во второй части, так как у вас есть 2 группы захвата.

Обратите внимание, что вы можете опустить квантификатор {1}.

^(.)\1|(.)\2$

См. Демоверсию regex

Ваш код может выглядеть следующим образом:

egrep '^(.)\1|(.)\2$' *.txt

Чтобы сопоставить дубликаты символов в начале и в конце, вы можете использовать:

^(.)\1.*(.)\2$

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...