Python 使用换行符查找字符串的其余部分
我有一个像这样的字符串Python 使用换行符查找字符串的其余部分,python,regex,string,match,newline,Python,Regex,String,Match,Newline,我有一个像这样的字符串 msg = "abc 123 \n 456" m = re.match('abc (.*)',msg) 我想做这样的事情 msg = "abc 123 \n 456" m = re.match('abc (.*)',msg) 并让m.groups返回“123\n 456” 但目前它只返回“123” 如何捕获字符串的其余部分,而不是仅仅捕获到行的末尾,使用s(dotall)修饰符强制点匹配所有字符,包括换行符 >>> import re >
msg = "abc 123 \n 456"
m = re.match('abc (.*)',msg)
我想做这样的事情
msg = "abc 123 \n 456"
m = re.match('abc (.*)',msg)
并让m.groups返回“123\n 456”
但目前它只返回“123”
如何捕获字符串的其余部分,而不是仅仅捕获到行的末尾,使用s
(dotall)修饰符强制点匹配所有字符,包括换行符
>>> import re
>>> msg = "abc 123 \n 456"
>>> m = re.match(r'(?s)abc (.*)', msg)
>>> m.group(1)
'123 \n 456'
您需要使用该标志,否则
正则表达式原子将不匹配换行符
re.DOTALL:
使特殊字符与任何字符匹配,包括换行符;如果没有此标志,。
将匹配除换行符以外的任何内容
所以这应该是你想要的:
m = re.match('abc (.*)', msg, re.DOTALL)