。*在正则表达式匹配中直到行尾

时间:2017-08-03 13:06:57

标签: python

我的文件包含以下数据

{
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
}

以下是代码

io = open("check")
lines = io.read();

match = re.search(".*", lines, re.M)

print match.group()

输出

{

我希望匹配到EOF usign。*

2 个答案:

答案 0 :(得分:3)

尝试使用标记re.DOTALL

import re
lines = """aaa
bbb
ccc
ddd"""

match = re.search(".*", lines, re.DOTALL)

print(match.group())

来自文档:

  

'' (点。)在默认模式下,这匹配除a以外的任何字符   新队。如果指定了DOTALL标志,则匹配任何标志   字符包括换行符。

     

re.DOTALL制作'。'特别   字符匹配任何字符,包括换行符;无   这面旗帜,'。'将匹配除换行符之外的任何内容。

答案 1 :(得分:1)

DOTALL is enough to get,

>>> match = re.match(".*", lines, re.DOTALL)
>>> match.group()
'ass\nbss\ncsss\nddd'
>>>