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
re.sub(pattern, repl, string[, count, flags])
第四个参数是计数,你使用re.MULTILINE(是8)作为计数,而不是标志。
re.MULTILINE
使用命名参数:
re.sub('^//', '', s, flags=re.MULTILINE)
或先编译正则表达式:
re.sub(re.compile('^//', re.MULTILINE), '', s)