假设我有这个字符串
text='bla1;\nbla2;\nbla3;\n#endif\nbla4;'
我想定义一种方法,删除所有' \ n' 除了,如果' \ n'之前是一个字符串开头,其中包含'#'或者' \ n'遵循'#',因此该过程的结果应该是:
text2='bla1;bla2;bla3;\n#endif\nbla4;'
使用正则表达式在python中有一种简单的方法吗?
(注意:我很清楚如何避免\ n后跟#,使用负面的后观,即r' \ n +(?!#)'但挑战是如何识别\ n前面是以#)
开头的字符串挑战是: 如何在python中处理可变长度字符串的正面lookbehind?
答案 0 :(得分:1)
查找:(#[a-z]+\\n)|\\n(?!#)
并替换为:'\ 1'
输出:bla1;bla2;bla3;\n#endif\nbla4;
演示:http://regex101.com/r/uO8wH2
这将保留所有\n
换行符,其前面的单词以#
开头,或后跟哈希值。
HTH