Regex для сопоставления чего-либо, если ему не предшествует что-то другое
Итак, с регулярным выражением в java, я хочу написать регулярное выражение, которое будет совпадать, если и только если шаблону не предшествуют определенные символы. Например:
String s = "foobar barbar beachbar crowbar bar ";
Я хочу совместить, если бару не предшествует foo. Таким образом, вывод будет следующим:
barbar
beachbar
crowbar
bar
Я знаю, что это, наверное, очень простой вопрос. Я пытаюсь изучить регулярное выражение, но в то же время мне нужно что-то для работы сейчас.
Ответы
Ответ 1
Вы хотите использовать negative lookbehind
следующим образом:
\w*(?<!foo)bar
Где (?<!x)
означает "только если у него нет" x "до этой точки".
Подробнее см. Регулярные выражения - Lookaround.
Изменить: добавлен \w*
для захвата символов до (например, "пляж" ).