2013-02-20 140 views
-1

为什么不能正常工作?Python正则表达式不能正常工作

re.match(r".*hello.*", "\n\nhello\n\n", re.MULTILINE) 

请帮忙吗?

Windows 7的64位 的Python 2.7.3

+0

你想让它匹配什么? – mgilson 2013-02-20 13:32:13

+0

我试图匹配“你好” - 这是一个简单的例子,我真的想要做的事情(匹配文本文件中的单行内的文本,而不是遍历每行) – 2013-02-20 13:33:07

+0

你正在运行这个事实在Windows上与这个问题无关。处理文件系统时存在差异,如果使用'\'目录分隔符,则与其他环境存在差异。 – jsbueno 2013-02-20 13:35:32

回答

6

您正在寻找re.DOTALL代替:

re.match(r".*hello.*", "\n\nhello\n\n", re.DOTALL) 

引用文档:

充分利用'.'特殊的任何字符都匹配,包括换行符;没有此标志,'.'将匹配除换行符之外的任何内容。

re.MULTILINE变造其中^$匹配,而不是.点模式相匹配的内容。

+0

是的,这是我打算建议OP尝试。 – mgilson 2013-02-20 13:33:02

+0

啊哈!谢谢一堆! – 2013-02-20 13:33:33