Регулярное выражение, чтобы найти <%, но исключить <% @? - PullRequest
3 голосов
/ 10 июня 2009

Может ли кто-нибудь предоставить мне регулярное выражение, которое найдет эту строку: <% но исключит эту строку: <% @ Спасибо. </p>

Ответы [ 4 ]

5 голосов
/ 10 июня 2009

Если вы используете .NET, вам нужно следующее регулярное выражение:

<%(?!@)

Это также будет работать в приложениях, отличных от .NET, но некоторые реализации регулярных выражений не поддерживают (?!)

2 голосов
/ 10 июня 2009

Точный правильный ответ варьируется между различными синтаксисами регулярных выражений, но что-то вроде этого должно работать:

<%[^@]

или возможно это, если ваш синтаксис регулярных выражений позволяет:

<%([^@]|$)

Последний также будет соответствовать вхождению <% в конце строки (или строки), тогда как первое регулярное выражение, вероятно, не будет. </p>

Наконец, как предполагают другие авторы, это может сработать, если ваш язык регулярных выражений имеет «отрицательные прогнозные утверждения нулевой ширины» (например, Perl и C #):

<%(?!@)
1 голос
/ 10 июня 2009

На основании вашего обновленного запроса, любой из них будет работать:

<%(?!@|-)

<%(?![@-])
1 голос
/ 10 июня 2009

Как насчет этого

<%([^@]|$)

Соответствует концу строки или [^ @], который является классом символов, содержащим все символы, кроме @

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