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

Man*_*hit 1 python regex re-python

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

re.match("^def/^def", "def/def")
Run Code Online (Sandbox Code Playgroud)

re对于无效的正则表达式,我期望会引发错误,但它不会引发任何错误并且不返回任何匹配项.

所以,我的问题是"^def/^def"还是"$def/$def"一个有效的正则表达式?

Mar*_*ers 5

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

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

也可以使用可选组创建模式,^如果所有前面的模式与空字符串匹配,则后者仍将匹配.使用^它无法匹配的in位置不是解析器检查的内容,也不会引发错误.

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