我希望能够使用正则表达式替换文件中的字符串。但我的功能没有找到匹配项。所以我模拟了一个测试来复制正在发生的事情。
我已经定义了要替换的字符串,如下所示:
string = 'buf = O_strdup("ONE=001&TYPE=PUZZLE&PREFIX=EXPRESS&");'
我想用其他内容替换“TYPE=PUZZLE&PREFIX=EXPRESS&”部分。注意。该字符串在原始文件中并不总是完全包含“PUZZLE”和“PREFIX”,但它将采用这种格式)。
所以首先我尝试测试我是否获得了正确的匹配。
obj = re.search(r'TYPE=([\^&]*)\&PREFIX=([\^&]*)\&', string)
if obj:
print obj.group()
else:
print "No match!!"
认为 ([\^&]*)
将匹配任意数量的不是&符号的字符。
但我总是得到“不匹配!!”。
但是,
obj = re.search(r'TYPE=([\^&]*)', string)
返回“TYPE=”
为什么我的第一个不起作用?
最佳答案
由于 ^
符号是用 \
转义的,因此以下部分: ([\^&]*)
匹配这些字符的任何序列: ^, &.
尝试将其替换为 ([^&]*)
。
关于python - 为什么这个正则表达式在这个字符串中不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861086/