带标志的Python re.sub不会替换所有出现的事件
Python文档说:
re.MULTILINE:指定时,模式字符’^’在字符串的开头和每行的开头(紧随每个换行符之后)匹配…默认情况下,’^’仅在字符串的开头匹配…
那么,当我得到以下意外结果时,该怎么办?
>>> import re>>> s = """// The quick brown fox.
... // Jumped over the lazy dog."""
>>> re.sub('^//', '', s, re.MULTILINE)
' The quick brown fox.\n// Jumped over the lazy dog.'
回答:
看一下的定义re.sub
:
re.sub(pattern, repl, string[, count, flags])
第四个参数是计数,你使用re.MULTILINE
(是8)作为计数,而不是标志。
使用命名参数:
re.sub('^//', '', s, flags=re.MULTILINE)
或先编译正则表达式:
re.sub(re.compile('^//', re.MULTILINE), '', s)
以上是 带标志的Python re.sub不会替换所有出现的事件 的全部内容, 来源链接: utcz.com/qa/417020.html