【问题标题】:Error "unbalanced parenthesis" on regular expression正则表达式上的错误“不平衡括号”
【发布时间】: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。不,在[...] 中时,) 不必转义。

标签: python regex


【解决方案1】:

您将模式与字符串混淆了。将re.fullmatch(i, pat) 更改为re.fullmatch(pat, i)

【讨论】:

    猜你喜欢
    • 2014-09-26
    • 2015-11-04
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多