首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局替换为负向先行?

全局替换为负向先行?
EN

Stack Overflow用户
提问于 2012-05-16 16:17:20
回答 2查看 135关注 0票数 0

我是Python-regex的新手,所以请耐心听我说...

我有一个很长的多行字符串,其中我必须替换[...]的目录部分字符串与其他内容一起使用,但前提是它们不是以“file://‘,so例如”开头。

代码语言:javascript
复制
    s= 'chk1 [[file:///excursions/digital/MindMaps/|mm]],
    local file [[file:///inFolder/tmptest/a/fan.txt|a/fan.txt]]
    and nonlocal [[/excursions/books/calsync.txt|/excursions/books]]'

我使用了它的变体(目前,替换字符串只是对我发现的内容的检查):

代码语言:javascript
复制
re.sub('\[\[(?!file:)(^])*',"found:< \\1 >",s)

但是我得到了一个"sre_constants.error:不匹配的组“。你知道我做错了什么吗?

谢谢!

alessandro

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-16 16:25:07

第二组中缺少[]运算符:

代码语言:javascript
复制
'\[\[(?!file:)(^])*

应该是

代码语言:javascript
复制
'\[\[(?!file:)([^\]]*)'

当你有很多转义时,最好使用原始字符串:

代码语言:javascript
复制
re.sub(r'\[\[(?!file:)([^\]]*)', r"found:<\1>", s)
票数 1
EN

Stack Overflow用户

发布于 2012-05-16 16:22:52

由于转义,您的方括号不匹配

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

https://stackoverflow.com/questions/10614524

复制
相关文章

相似问题

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