我正在尝试在python中使用正则表达式。我已经构建了正则表达式,如下所示。我知道^
用于匹配搜索字符串的开头。我已经按照包含多个^
的匹配模式构建了框架,但我不确定re
将如何尝试匹配搜索字符串中的模式。
re.match("^def/^def", "def/def")
我期待re
会出现错误,关于无效的正则表达式,但它不会引发任何错误并且不返回任何匹配项。
那么,我的问题是"^def/^def"
或"$def/$def"
是一个有效的正则表达式吗?
答案 0 :(得分:5)
您没有无效的正则表达式,^
在字符串中间具有合法用途。例如,使用re.M
flag时:
指定时,模式字符
'^'
匹配字符串的开头和每行的开头(紧跟在每个换行符之后);模式字符'$'
匹配字符串的末尾和每行的结尾(紧接在每个换行符之前)。
也可以使用可选组创建模式,如果前面的所有模式都匹配空字符串,则后面的^
仍然匹配。在地方使用^
,它不能匹配解析器检查的内容,不会引发错误。
你的特定模式永远不会匹配任何东西,因为中间的^
是无条件的,并且它前面的/
不可能匹配必需的换行符,即使多行标志也是如此已启用。