【发布时间】:2013-11-25 09:03:29
【问题描述】:
我正在尝试确定某个术语是否出现在字符串中。
术语前后必须出现空格,也可以有标准后缀。
示例:
term: google
string: "I love google!!! "
result: found
term: dog
string: "I love dogs "
result: found
我正在尝试以下代码:
regexPart1 = "\s"
regexPart2 = "(?:s|'s|!+|,|.|;|:|\(|\)|\"|\?+)?\s"
p = re.compile(regexPart1 + term + regexPart2 , re.IGNORECASE)
并得到错误:
raise error("multiple repeat")
sre_constants.error: multiple repeat
更新
失败的真实代码:
term = 'lg incite" OR author:"http++www.dealitem.com" OR "for sale'
regexPart1 = r"\s"
regexPart2 = r"(?:s|'s|!+|,|.|;|:|\(|\)|\"|\?+)?\s"
p = re.compile(regexPart1 + term + regexPart2 , re.IGNORECASE)
另一方面,以下term 顺利通过(+ 而不是++)
term = 'lg incite" OR author:"http+www.dealitem.com" OR "for sale'
【问题讨论】:
-
您的代码和您在 2.7 或 3.3 上的输入都没有出现此错误。你能给我们一个实际可重现的测试用例吗?
-
附带说明,您确实应该将原始字符串与正则表达式一起使用。你在这里很幸运,因为你的反斜杠恰好不是 Python 转义序列的一部分,但你永远不应该依赖它。
-
我正在使用 RegexBuddy 并且该正则表达式显然有效
-
其实,等等,不,你不会走运的……