Необязательные персонажи в Lookaround
Скажем, я хочу найти каждую итерацию orange
этому не предшествует apple and
используя RegEx. Я также хочу, чтобы это работало на соответствующие множественные числа.
Вот список того, что должно и не должно быть действительным.
orange - valid
oranges - valid
an orange - valid
apple and orange - invalid
apple and oranges - invalid
apples and orange - invalid
apples and oranges - invalid
Код, который я написал, чтобы сделать это возможным до сих пор, следующий.
(?<!apples? and )oranges?
Когда я проверяю его, я получаю сообщение об ошибке s
характер, после apple
, Regex101 описывает ошибку следующим образом.
Вид сзади должен быть нулевой ширины, поэтому квантификаторы не допускаются.
Почему это? Как я могу решить эту проблему?
1 ответ
Смотровые площадки должны иметь фиксированную длину. Указывая необязательный символ, вы указываете, что длина может меняться на единицу. Это не принято. Но вы не ограничены количеством просмотров, которые вы выполняете, поэтому вы можете разделить его на две части, например:
(?<!apple and )(?<!apples and )oranges?