假设有两个字符串:
$1 off delicious ham.
$1 off delicious $5 ham.
在Python中,当字符串中只有一个$时,是否可以有一个匹配的regex?一、 我想在第一个短语上重新匹配,但在第二个短语上不匹配。我试过这样的方法:
re.search(r"\$[0-9]+.*!(\$)","$1 off delicious $5 ham.")
…说“在$后面跟除另一$之外的任何内容匹配。”在$示例上没有匹配,但在$示例上也没有匹配。
提前谢谢!
检查的简单试验方法:
def test(r):
s = ("$1 off $5 delicious ham","$1 off any delicious ham")
for x in s:
print x
print re.search(r,x,re.I)
print ""
regexp的分解:
^
在字符串开始处定位[^\$]*
零个或多个不是$
\$
匹配美元符号[^\$]*
零个或多个不是$
$
在字符串末尾定位要使用字符类
[^]
的补码来匹配除$
以外的任何字符:与原件的更改如下:
.*
替换为[^\$]*
。新术语[^\$]
表示$
以外的任何字符$
附加到字符串。强制匹配扩展到字符串的结尾。re.search
替换为re.match
。匹配整个字符串,而不是它的任何子集。相关问题 更多 >
编程相关推荐