正则表达式如何在正则表达式模式中处理`^`或`$`?

时间:2018-03-12 09:02:50

标签: python regex re-python

我正在尝试在python中使用正则表达式。我已经构建了正则表达式,如下所示。我知道^用于匹配搜索字符串的开头。我已经按照包含多个^的匹配模式构建了框架,但我不确定re将如何尝试匹配搜索字符串中的模式。

re.match("^def/^def", "def/def")

我期待re会出现错误,关于无效的正则表达式,但它不会引发任何错误并且不返回任何匹配项。

那么,我的问题是"^def/^def""$def/$def"是一个有效的正则表达式吗?

1 个答案:

答案 0 :(得分:5)

您没有无效的正则表达式,^在字符串中间具有合法用途。例如,使用re.M flag时:

  

指定时,模式字符'^'匹配字符串的开头和每行的开头(紧跟在每个换行符之后);模式字符'$'匹配字符串的末尾和每行的结尾(紧接在每个换行符之前)。

也可以使用可选组创建模式,如果前面的所有模式都匹配空字符串,则后面的^仍然匹配。在地方使用^,它不能匹配解析器检查的内容,不会引发错误。

你的特定模式永远不会匹配任何东西,因为中间的^是无条件的,并且它前面的/不可能匹配必需的换行符,即使多行标志也是如此已启用。