如何用正则表达式提取字符串中***包裹的所有子串?
使用Python正则表达式提取特定模式的子串
你可以直接用Python的re模块的findall方法一次性提取所有符合***内容***模式的子串,代码简洁高效:
import re string = "{\huge \centering \bf{RAPPORT JOURNALIER \\ ***bouee*** \\ \formatDate{***day***}{***month***}{***year***}} \\ \small generated on~\today~at~\currenttime \par}" result = re.findall(r'\*\*\*(.*?)\*\*\*', string) print(result) # 输出: ['bouee', 'day', 'month', 'year']
正则表达式说明
\*\*\*:匹配开头的三个星号,星号是正则特殊字符,用反斜杠转义后表示匹配字面量星号(.*?):非贪婪捕获组,.*?会匹配任意字符(默认不含换行),非贪婪模式确保它只会匹配到最近的一组***就停止,避免过度匹配\*\*\*:匹配结尾的三个星号
如果目标字符串包含换行符,需要给findall加上re.DOTALL参数,让.能匹配换行:
result = re.findall(r'\*\*\*(.*?)\*\*\*', string, flags=re.DOTALL)
内容的提问来源于stack exchange,提问作者Radio
相关产品推荐
相关产品推荐

