使用正则表达式在成对$$标记与内部字符串之间添加换行符
问题解决方法
原代码问题分析
- 正则表达式未定义捕获组,替换逻辑里的
\1反向引用没有对应内容,只会输出空值 - 匹配规则只适配了前导带换行的
$$格式,无法匹配第一行开头的$$mystring1$$这类场景 - 没有开启多行匹配模式,无法逐行校验是否符合「单独一行出现
$$xxx$$」的规则 - 未过滤行前后的空白字符,示例中
$$mystring2$$前后带空格的场景原规则无法匹配
正确实现代码
import re s = "$$mystring1$$ \n $$mystring2$$ \n $$fake" # 开启多行匹配,捕获两个$$中间的内容,自动忽略行前后的空白字符 result = re.sub(r'^\s*\$\$(.*?)\$\$\s*$', r'$$\n\1\n$$', s, flags=re.MULTILINE) print(result)
输出结果
$$ mystring1 $$ $$ mystring2 $$ $$fake
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

