Python正则表达式混乱

时间:2015-02-19 00:11:10

标签: python regex

我一直试图对此进行调试一段时间,但我似乎没有取得任何进展。

为什么下面的正则表达式与提供的文字不匹配?

正则表达式:

'^(.*)============== TT ==============(.*)=================================================='

文本:

'fasdfdsfadf\ndfassdflj\n============== TT ==============\nPlease add.\n=================================================='

re.search(x, editor_text)

将返回None

根据我的理解,正则表达式会返回第一段文本(.*)然后查找分隔符(===)并查找文本的第二段(.*)并完成分隔符。

为什么正则表达式不提取

fasdfdsfadf\ndfassdflj\n

\nPlease add.\n

2 个答案:

答案 0 :(得分:4)

您需要使用s dotall )修饰符来强制点匹配换行符序列。

将其用作inline修饰符:

(?s)(.*)============== TT ==============(.*)==================================================

注意:您可以按如下方式简化正则表达式:

(?s)(.*)={14} TT ={14}(.*)={50}

或在re.search()

的通话中加入国旗
re.search(x, editor_text, re.S)

答案 1 :(得分:1)

您还可以使用re.DOTALL标记来匹配换行符:

re.search(x, editor_text, re.DOTALL)