Regex - не содержит определенных символов

119

Мне нужно регулярное выражение, чтобы соответствовать, если в любом месте предложения нет ни одного, или > .

Если либо < или > находятся в строке, тогда он должен возвращать false.

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

(?!<|>).*$

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

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

Добавить вопрос:

Мне было интересно, как бы вы изменили приведенное ниже регулярное выражение, чтобы возвращать только false, если текст содержит тег типа <test>?

Теги:
regex-negation

2 ответа

204
Лучший ответ
^[^<>]+$

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

  • 1
    Что означает первая карета? Не будет ли это означать что-либо, что не содержит этих символов ... означая только строки, которые содержат эти символы?
  • 6
    Первая каретка означает начало строки. Доллар означает конец строки.
Показать ещё 1 комментарий
26

Здесь вы идете:

^[^<>]*$

Это проверит строку, у которой нет < и no >

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

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

Где [<>] означает любое из < или > и [^<>] означает любое, что не принадлежит < или >.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню