Как сопоставить первое вхождение шаблона (или символа), кроме строк, в которых этот шаблон находится в начале строки? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть следующие примерные строки:

!foobar foo bar ! foo               ---> NO MATCH
foo bar foo bar !   foo             ---> Should match !
foo bar foo bar ! ! fooo bar !      ---> Should ONLY match the first ! 
! ! foo bar                         ---> NO MATCH
!foo bar foo bar ! ! fooo bar !     ---> NO MATCH

, и я хотел бы найти выражение регулярного выражения, которое соответствовало бы только первому вхождению символа "!" кроме строк, если символ находится в начале строки. Я безуспешно пытался использовать множество различных комбинаций (возможно, неправильно) отрицательного ретроспективного анализа, например ^(?!\!)\!.

Я планирую использовать это выражение регулярного выражения в качестве входных данных для команды, которая требует принудительного выражения регулярного выражения , следовательно, я не могу использовать другие методы.

1 Ответ

0 голосов
/ 17 июня 2020

Regex:

^[^!]+(!).*

Группа 1 содержит ваше совпадение.

Test здесь .

Обратите внимание, что это решение работает только с одиночными символами (в данном случае !).

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