首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python (sre_constants.error:非匹配组)

问Python (sre_constants.error:非匹配组)
EN

Stack Overflow用户
提问于 2016-12-29 17:24:32
回答 1查看 152关注 0票数 0

我查看了Stackoverflow上所有相关的帖子,但是没有一个答案对我有帮助。我的清单中有下列项目:

代码语言:javascript
复制
topics\Utmutatok\Uzemeltetoi_Utmutato.dita
topics\_Reuse\Definitions\FRP_CUST_PROD_properties.xml
topics\_Reuse\Definitions\FRP_properties.xml
topics\_Reuse\Definitions\FR_Definitions.dita

我在python文件中使用了以下行:

代码语言:javascript
复制
kifejezes5 = re.sub(r'^(?!(?:topics/_Reuse(.*?)|^$)$|$).*$', r'@@@@@.\1', kifejezes4)

这些表达式在Notepad++中工作得很好,但在我的脚本中却不起作用。

当我运行我的脚本时,我会得到标题中提到的错误。这里有什么可行的解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 19:25:09

该组是不匹配的,因为捕获组是在负前瞻中使用的。如果有匹配,则该组将永远不会被填充。

相反,使用

代码语言:javascript
复制
re.sub(r'^(?!(?:topics/_Reuse.*)?$).*$', r'@@@@@\g<0>', s)

见在线Python演示

代码语言:javascript
复制
import re
s = 'topics\_Reuse\Definitions\FRP_CUST_PROD_properties.xml'
res = re.sub(r'^(?!(?:topics/_Reuse.*)?$).*$', r'@@@@@\g<0>', s)
print(res)
# => @@@@@topics\_Reuse\Definitions\FRP_CUST_PROD_properties.xml

模式匹配:

  • ^ -字符串的开始
  • (?!(?:topics/_Reuse.*)?$) -不跟在topics/_Reuse后面,然后直到字符串的末尾或字符串的末尾为止的任何0+字符(字符串不能为空)
  • .*$ -到字符串末尾的任何0+字符(行中断字符除外)。

替换模式包含对整个匹配的\g<0>反向引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41384420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档