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