我想获取以下代码:
pattern = r"#(.*?)#"
pattern_obj = re.compile(pattern, re.MULTILINE)
translation = pattern_obj.sub("<li>\\1</li>", translation)
查找#包围的任何文本。它取代了第一个实例
>>><li> TEXT </li>
# More TEXT #
# Even more TEXT #
有人可以帮帮我吗?
提前感谢你!
编辑: 我刚刚解决了这个问题。
pattern = r"#([^#]*)#"
pattern_obj = re.compile(pattern, re.MULTILINE)
translation = pattern_obj.sub("<li>\\1</li>", translation)
答案 0 :(得分:-1)
来自docs:
(点。)在默认模式下,它匹配除a以外的任何字符 新队。如果指定了DOTALL标志,则匹配任何标志 字符包括换行符。
由于.
与新行不匹配,因此表达式仅查找第一行作为匹配项。
但是,设置DOTALL
标志也无济于事。由于正则表达式特殊字符通常是贪婪的,因此您最终会匹配第一个#
和最后一个#
之间的所有文字。
我可能会弄错,但我相信你需要逐行完成。