Regex - не содержит определенных символов - PullRequest
207 голосов
/ 05 ноября 2010

Мне нужно регулярное выражение для сопоставления, если где-либо в предложении нет ни <, ни>.

Если в строке есть либо <, либо>, она должна вернуть false.

У меня был частичный успех с этим, но только если мои <> в начале или в конце:

(?!<|>).*$

Я использую .Net, если это имеет значение.

Спасибо за помощь.

Ответы [ 2 ]

340 голосов
/ 05 ноября 2010
^[^<>]+$

Символ каретки в классе символов ([^) означает совпадение с чем угодно, но это означает, что начинается строка, затем одно или несколько значений, кроме < и >, затем конец строки.

45 голосов
/ 05 ноября 2010

Вот так:

^[^<>]*$

Это будет проверять строку, которая не имеет < и >

Если вы хотите проверить строку, которая может иметь < и >, но также должно быть что-то другое, что вы должны использовать просто

[^<>] (or ^.*[^<>].*$)

Где [<>] означает любой из < или > и [^<>]означает любой, который не имеет < или >.

И, конечно, обязательную ссылку .

...