我需要一个正则表达式,能够匹配除了以特定模式开头的字符串之外的所有内容(具体而言index.php,如下所示index.php?id=2342343)
Wik*_*żew 271
正则表达式:匹配所有内容,但:
foo):
world.结尾处的否):
foo)(没有POSIX兼容的patern,抱歉):
|符号的字符串):
foo):
cat):/cat(*SKIP)(*FAIL)|[^c]*(?:c(?!at)[^c]*)*/i或/cat(*SKIP)(*FAIL)|(?:(?!cat).)+/is(cat)|[^c]*(?:c(?!at)[^c]*)*或(?s)(cat)|(?:(?!cat).)*,或(cat)|[^c]+(?:c(?!at)[^c]*)*|(?:c(?!at)[^c]*)+[^c]*)然后用语言检查意味着:如果组1匹配,则不是我们需要的,否则,如果不是空的则获取匹配值演示注释:新行\n用于演示中的否定字符类,以避免匹配溢出到相邻行.在测试单个字符串时不需要它们.
锚注:在许多语言中,用于\A定义字符串的明确开始,并且\z(在Python中\Z,在JavaScript中,$可以)定义字符串的最后一端.
点注:在许多风格(但不是POSIX,TRE,TCL)中,.匹配任何字符,但匹配换行符.确保使用相应的DOTALL修饰符(/s在PCRE/Boost/.NET/Python/Java和/mRuby中).来匹配任何包含换行符的字符.
反斜杠注意:在必须使用允许转义序列的C字符串声明模式的语言中(例如\n换行符),需要将转义特殊字符的反斜杠加倍,以便引擎可以将它们视为文字字符(例如,在Java中,world\.将是声明为"world\\.",或使用字符类:) "world[.]".使用原始字符串文字(Python r'\bworld\b'),C#逐字字符串文字@"world\."或斜杠字符串/正则表达式文字符号/world\./.
Fir*_*.io 245
您可以^在字符集的开头添加一个除了那些字符之外的任何内容.
[^=]*
Run Code Online (Sandbox Code Playgroud)
会匹配一切但是 =
Cat*_*lus 208
不是正则表达式专家,但我认为你可以从一开始就使用负面的预测,例如,^(?!foo).*$不应该匹配任何开头的东西foo.
在python中:
>>> import re
>>> p='^(?!index\.php\?[0-9]+).*$'
>>> s1='index.php?12345'
>>> re.match(p,s1)
>>> s2='index.html?12345'
>>> re.match(p,s2)
<_sre.SRE_Match object at 0xb7d65fa8>
Run Code Online (Sandbox Code Playgroud)