【发布时间】:2010-07-02 14:31:59
【问题描述】:
假设有两个字符串:
$1 off delicious ham.
$1 off delicious $5 ham.
在 Python 中,当字符串中只有一个 $ 时,我可以有一个匹配的正则表达式吗?即,我希望 RE 匹配第一个短语,但不匹配第二个短语。我试过类似的东西:
re.search(r"\$[0-9]+.*!(\$)","$1 off delicious $5 ham.")
..saying “匹配你看到一个 $ 后跟除另一个 $ 之外的任何内容的位置。” $$ 示例上没有匹配项,但 $ 示例上也没有匹配项。
提前致谢!
检查的简单测试方法:
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 ""
【问题讨论】:
-
为什么不使用字符串的
.count()方法呢? -
我正在将 RE 插入一个不允许我添加任何额外逻辑的工具中。所以我不能做“if count(str,"$") > 1: pass”。我需要 re 不匹配这样的字符串。