如何用Python正则表达式将维基百科[[X|Y]]链接替换为管道后内容?
正则表达式替换维基百科链接文本的解决方案
当然可以用正则实现你要的两种需求,具体方案如下:
需求1:替换为管道符后的纯文本
要把[[File Transfer Protocol|FTP server]]变成FTP server,[[server (computing)|server]]变成server,可以用捕获组提取管道符|后面的内容,再替换掉整个链接格式。
Python代码示例:
import re pattern = r'\[\[.*?\|(.*?)\]\]' text = "[[File Transfer Protocol|FTP server]]\n[[server (computing)|server]]" result = re.sub(pattern, r'\1', text) print(result)
输出结果:
FTP server server
正则说明:
\[\[匹配开头的双左括号.*?\|非贪婪匹配管道符前的所有内容(避免误匹配多个连续链接)(.*?)捕获管道符后到双右括号前的目标内容\]\]匹配结尾的双右括号- 替换时用
\1引用捕获到的第一组内容
需求2:替换为带双括号的格式
如果要得到[[FTP server]]和[[server]],只需要调整替换模板,把捕获到的内容重新套进双括号里。
Python代码示例:
import re pattern = r'\[\[.*?\|(.*?)\]\]' text = "[[File Transfer Protocol|FTP server]]\n[[server (computing)|server]]" result = re.sub(pattern, r'[[\1]]', text) print(result)
输出结果:
[[FTP server]] [[server]]
内容的提问来源于stack exchange,提问作者Saku
相关产品推荐
相关产品推荐

