【发布时间】:2015-10-23 13:05:04
【问题描述】:
我有一个包含一些行的文本文件,我想打印以 T 开头的行。
这有效并给出了所需的输出:
f = open("path", 'r')
for line in f:
match = re.search(r'^T', line)
if match:
print line
但这并没有按预期工作,它会打印一个空列表[],而不是包含以T开头的行的数组:
f1 = open("path").read()
print re.findall(r'^T', f1)
第二个解决方案的错误在哪里?
【问题讨论】:
-
你需要
re.MULTILINE来匹配^来匹配lines 的开始,而不仅仅是string 的开始。 -
print re.findall(r'(?m)^T', f1) -
这里是some code 说明
re.M修饰符的使用。 -
是同一个修饰符,一个是内联的,一个是非内联的。
-
@Borja “更好” 怎么样?我发现前者更具可读性,但这只是一种观点,我怀疑性能会有所不同。
标签: python regex python-2.7