【发布时间】:2010-10-28 13:29:34
【问题描述】:
在python正则表达式中,命名组和未命名组都用'('和')'定义。这会导致一种奇怪的行为。正则表达式
"(?P<a>1)=(?P<b>2)"
与文本“1=2”一起使用会发现命名组“a”的值为“1”,命名组“b”的值为“2”。但是,如果我想使用“逻辑或”运算符并连接多个规则,则以下正则表达式:
"((?P<a>1)=(?P<b>2))|(?P<c>3)"
与相同的文本“1=2”一起使用会找到一个值为“1=2”的未命名组。我知道正则表达式引擎将包含组“a”和“b”的“(”和“)”视为未命名组并报告它已找到。但我不想报告未命名的组,我只想使用“|”为了将多个正则表达式“粘合”在一起。无需创建任何寄生的未命名组。这是在python中这样做的一种方式吗?
【问题讨论】: