我试图让这个下面的代码:的Python:子模式不会取代所有的模式发现
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)
它适用于我,即使没有“re.MULTLINE” – prM
奇怪的是,手动排除'#'解决了问题。我会认为这个非贪婪的'*?'会阻止它成为一个问题。也许括号把'*?'的范围搞砸了? – acattle