假设我有这个字符串
text='bla1;\nbla2;\nbla3;\n#endif\nbla4;'
我想定义一个方法,删除所有“\n”,除非“\n”前面有一个以“#”开头的字符串,或者“\n”后面有“#”,因此该过程的结果应该是:
text2='bla1;bla2;bla3;\n#endif\nbla4;'
有没有一种简单的方法可以在python中使用regex实现这一点
(注意:我是否清楚如何避免\n后跟#,使用负回溯,即r'\n+(?!#))但挑战在于如何识别前面有以#开头的字符串的\n)
挑战是: 如何在python中使用可变长度字符串处理正向查找?
查找:
(#[a-z]+\\n)|\\n(?!#)
并替换为:'\1'
输出:
bla1;bla2;bla3;\n#endif\nbla4;
此处演示:http://regex101.com/r/uO8wH2
这将保留所有
\n
换行符,这些换行符前面有一个以#
开头的单词,或者后面有一个散列嗯
相关问题 更多 >
编程相关推荐