我想取消维基百科同义词括号。
这是一个简单的方法。
He is [[Korean]].
我可以移除支架。
这是另一个困难的问题。
He lives in [[Gimhae city|Gimhae]].
第一个(金海市)是维基百科文档标题。
所以我必须在括号中得到第二个。
欢迎任何建议。
最佳答案
您可以使用以下正则表达式:
\[{2}(?:[^|\]]*\|)?([^]]*)]{2}
并替换为\1
。
参见demo
这是正则表达式匹配的内容:
\[{2}
- 2 个左方括号(?:[^|\]]*\|)?
- 除|
和]
之外的 0 或 1 个字符序列(使用[^|\]]*
)和文字|
与\|
(注意它在字符类之外转义)<([^]]*)
- 匹配并捕获到组 1,我们稍后将使用\1
0 个或多个除右方括号之外的字符进行引用]{2}
- 2 个右方括号(请注意,我们不必在这里转义它们,因为第一个[
已转义)。
import re
p = re.compile(r'\[{2}(?:[^|\]]*\|)?([^]]*)]{2}')
test_str = "He lives in [[Gimhae city|Gimhae]]. He lives in [[Gimhae]]. "
result = re.sub(p, r"\1", test_str)
print(result) # => He lives in Gimhae. He lives in Gimhae.
关于python - 取消维基百科同义词括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31718706/