Как написать регулярное выражение с оператором AND? - PullRequest
0 голосов
/ 06 февраля 2012

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

Я думал, что разрешу */-7721/-7722/-7723чтобы соответствовать любой заданной 4-значной строке, которая является not 7721 AND not 7722 AND not 7723.

Я ищу регулярное выражение для выполнения вышеуказанного для входной строки, которая представляет собой 4-значное число.

Я пытался использоватьзапись ?!, но она не может не совпадать со всей строкой.

(?![0-9]{4}) - это не допускает 4-значную строку.

((?!(7721))(?!(7722))(?!(77223)) - это такжене работает

Есть ли оператор AND для выполнения вышеуказанного?

Спасибо,

1 Ответ

1 голос
/ 06 февраля 2012

Вы забыли ^:

^(?!(?:7721))(?!(?:7722))(?!(?:7723))\d{4}

Отредактировано: добавлено \ d {4} для фактического сопоставления строки, а не только для проверки

...