在python代码中
regular_expression = ""
p = re.compile(regular_expression)
result = p.match("some strings")
if result:
print("Match")
else:
print("No Match")
我想使regular_expression在任何情况下总是找不到匹配。 我虽然“”(没有语言)会起作用。但遗憾的是它总是回归“匹配”。 我也想知道它为什么会这样。 “”和“。*”如何相同?
答案 0 :(得分:3)
一个简单的正则表达式是
(?!)
意思是“断言无法匹配空字符串”。
你的“空正则表达式”总是精确匹配,因为它总是可以匹配空字符串。 .match()
不要求正则表达式匹配整个字符串,它只要求它应该在字符串的开头匹配,就像它一样。
如果您希望正则表达式匹配整个字符串,请使用anchors:
regular_expression = r"\A\Z"
仅匹配空字符串。
修改强>
在大多数正则表达式中,\z
是真正的字符串结尾锚,而\Z
也可以在字符串末尾的最后一个换行符之前匹配。但是在Python中,\Z
表现为真正的字符串结束锚。
答案 1 :(得分:1)
有无数的表达式永远不会匹配任何东西
例如^(?<=.).
(匹配字符串开头的字符和任何前面的字符)。
答案 2 :(得分:1)
这是一个非常奇怪的请求,你能解释为什么需要它吗?
无论如何,表达式&#34;&#34;匹配任何东西,因为要求是正则表达式应该在给定字符串中某处,并且每个字符串中都存在空字符串 - 如果您熟悉在数学中设定理论,这类似于每个集合如何包含空集{}。
现在,你有几种方法可以获得一个不匹配的正则表达式;我想到的第一个是&#34; $ abc&#34;。这要求字符串包含&#34; abc&#34; 在字符串的结束之后,这是不可能的,因此没有字符串可以满足此正则表达式。
答案 3 :(得分:-1)
“$ ^”怎么样(行尾,行的开头)?