Регулярное выражение Условный Lookahead / Lookback? - PullRequest
0 голосов
/ 12 ноября 2009

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

Например, в моем регулярном выражении я хочу, чтобы следующее значение находилось в диапазоне от 0 до 5, если предыдущее значение было больше 3, или в диапазоне от 0 до 9, если предыдущее значение было меньше 3.

Например:

[0-9] следующее совпадение должно быть либо [0-5] ИЛИ [0-9] в зависимости от того, было ли предыдущее значение меньше или больше 5.

как код думает об этом так:

называет это A -> [0-9] [0-9] <- называют это B </p>

если (A <5), то B [0-9] Остальное B [0-5] </p>

Возможно ли это как одно регулярное выражение?

1 Ответ

5 голосов
/ 12 ноября 2009

Это формат для позитивного взгляда:

/(?=expression)/

А это негативный взгляд:

/(?!expression)/

EDIT

Для вашего примера это будет означать что-то вроде этого:

/((?=[5-9]+)[0-5]+)|((?=[0-4]+)[0-9]+)/
...