【发布时间】:2019-06-28 11:27:05
【问题描述】:
我正在尝试解决来自 edabit.com 的挑战 Count the Smiley Faces 并拥有以下代码:
import re
def count_smileys(lst):
pat = "[:;]?[-~]?[)D]?"
res = []
for i in lst:
if re.fullmatch(i, pat):
res.append(i)
return len(res)
但是这会引发错误
“sre_constants.error:括号不平衡。”
我已经用 RegExr 测试了正则表达式,它工作正常。是什么导致了这个错误?
【问题讨论】:
-
)用于在正则表达式中进行分组。为了匹配它必须被转义的实际字符:\) -
你还需要使用
re.fullmatch(pat, i)。 -
@KlausD。不,在
[...]中时,)不必转义。