regex 正则表达式:匹配除特定模式以外的所有内容

rmbxnbpk  于 2023-01-27  发布在  其他
关注(0)|答案(6)|浏览(145)

我需要一个正则表达式,它能够匹配以特定模式开头的字符串(特别是index.php及其后面的字符串,如index.php?id=2342343)以外的所有字符串。

o4tp2gmn

o4tp2gmn1#

正则表达式:匹配所有项**,但不匹配**:

tag5nh1u

tag5nh1u2#

您可以从一开始就使用负前瞻,例如,^(?!foo).*$不应匹配以foo开头的任何内容。

n3schb8v

n3schb8v3#

您可以在字符集的开头放置一个^,以匹配除这些字符之外的任何字符。

[^=]*

将匹配除=之外的所有内容

3pvhb19x

3pvhb19x4#

只需匹配/^index\.php/,然后拒绝任何匹配的内容。

nhaq1z21

nhaq1z215#

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>
am46iovg

am46iovg6#

我有这个问题的多重搜索和替换。需要一个负模式跳过匹配,直到下一次搜索

import re

text = "alex ![image]dfsf(dfd.png) [image]fsdf(dfd.png) home ![image]fdsf(dfd.png) end"
replaced_text = re.sub(r'!\[image\](.*)\(.*\.png\)', '*', text)
print(replaced_text)

alex * end

基本上中间部分一直在 Gulp 直到下一个.png
使用了Firish的https://stackoverflow.com/a/17761124/429476方法,得到了我想要的结果,这里字符空间不匹配;后面的单词用空格隔开

replaced_text = re.sub(r'!\[image\]([^ ]*)\([^ ]*\.png\)', '*', text)

得到了我想要的

alex * [image]fsdf(dfd.png) home * end

相关问题