用于选择和替换双括号内的空格的正则表达式

2024-05-16 01:25:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个脚本,用于在转换为confluence标记之前整理MediaWiki文件,在这个特定的场景中,我需要修复MediaWiki中的页面链接如下所示

[[this is a page]] 

问题是,实际的页面链接将是这个“是”页面,通用wiki转换器在转换为聚合标记时没有足够的智能来意识到这一点,因此最终会出现断开的链接。在

我一直在尝试创建一个regex作为python脚本的一部分(我已经去掉了html和一些其他标记,如<;gallery>;等,下面的regex选择了所有有问题的链接:

^{pr2}$

我只是找不到一种编程方式来只选择[[]]内的空格,这样我就可以用下划线代替它们。我试过用火柴,但没有成功。在


Tags: 文件标记脚本is链接智能wikiconfluence
2条回答

尝试使用re.sub和lambda表达式

>>> import re
>>> test = '[[this is a page]] bla bla [[this is another page]]'
>>> re.sub(r'\[\[.+?\]\]', lambda x:x.group().replace(" ","_"), test)
'[[this_is_a_page]] bla bla [[this_is_another_page]]'

尝试下面的正则表达式,并用下划线替换匹配的空格。在

\s(?=[^\[\]]*]])

DEMO

^{pr2}$

\s(?=[^\[\]]*]],只有后面跟任何不是[]的字符以及两个右]]方括号,它才会匹配空格。在

相关问题 更多 >