正则表达式找到<%但排除<%@?

时间:2009-06-10 10:40:31

标签: regex eclipse

有人可以为我提供一个能找到这个字符串的正则表达式:<% 但将排除此字符串:<%@ 感谢。

4 个答案:

答案 0 :(得分:5)

如果您使用的是.NET,那么您正在寻找的正则表达式是:

<%(?!@)

它也适用于非.NET应用程序,但某些正则表达式实现不支持(?!)

答案 1 :(得分:2)

不同的正则表达式语法之间的确切正确答案有所不同,但这样的事情应该有效:

<%[^@]

或者如果您的正则表达式语法允许:

<%([^@]|$)

后者也会匹配字符串(或行)结尾处出现&lt;%,而第一个正则表达式可能不匹配。

最后,正如其他海报所示,如果您的正则表达式语言具有“零宽度负前瞻断言”(如Perl和C#),这也可能有效:

<%(?!@)

答案 2 :(得分:1)

这个怎么样

<%([^@]|$)

它匹配字符串的末尾或[^ @],这是一个包含除@

之外的所有字符的字符类

答案 3 :(得分:1)

根据您更新的请求,其中任何一个都可以使用:

<%(?!@|-)

<%(?![@-])