Как я смотрю за одним словом? - PullRequest
0 голосов
/ 03 марта 2019

В этой строке a b-cd я хочу применить это регулярное выражение a b-c(?<=a)d.

Единственный способ - написать это так a b-c(?<=a b-c)d, но я не хочу писать полное регулярное выражение за ним, чтобы применить его, а хочу только увидеть, существует это письмо или нет.

сложная версия: (?:[a-z] )?b c d e f(?:(?<=a ) alphas) https://regex101.com/r/gyT6ix/1

Возможно ли это?

Справочник по регулярным выражениям

1 Ответ

0 голосов
/ 03 марта 2019

В pcre бесконечный внешний вид .* в шаблоне a b-c(?<=a.*)d, на который вы ссылаетесь в комментариях, не поддерживается.

Одной из опций для соответствия либо [a-z] b c d e f, либо a b c d e d alphas может быть использование условное выражение if-then-else выглядит как (?(?=regex)then|else)

(?(?=a)\ba b c d e f alphas\b|[a-z] b c d e f)

О регулярном выражении

  • (? If предложение
    • (?=a) Позитивный взгляд на утверждение справа: a
    • \ba b c d e f alphas\b Совпадение a b c d e f alphas и использование границ слов, чтобы символы a и альфа не являлись частью более крупного слова
  • | Или
  • [a-z] b c d e f Соответствует символу az, за которым следует bcdef)

См. Regex demo

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