![](/img/trans.png)
[英]C# Regex Can't Match Anything (Probably because can't escape characters properly)
[英]Can a regex '(?!^()$)' match anything?
在一个非常特殊的情况下,我的否定前瞻是一个空列表:
(?!^()$)
是否有任何匹配的字符串?
比方说:
(?!^()$)^(.*)$
它会匹配所有东西吗?
从字面上看,空字符串旁边的任何东西。
正则表达式包含(?!^()$)
和^(.*)$
:
(?!^()$)
空字符串的零宽度负匹配。 按照顺序, string.Empty
不在列。
^(.*)$
完全匹配除换行1重复0到很多次以外的所有内容,因此基本上是任何内容。
注意:1.例外换行符
(?!^()$)
可以简化为(?!^$)
因为()
是一个空组,并且将始终在任何位置匹配。
因此,现在您说的是“在开始和结束锚点彼此不相邻的任何位置进行匹配,换句话说,我们不是在空字符串上”。
因此(?!^$)
可以在不仅为空或换行的字符串中的每个位置都匹配 。
(?!^()$)^(.*)$
是“到处都匹配,但在空字符串处”加上^.*$
将“匹配并消耗每行,无论是否为空”(锚点^
和$
没有在这种情况下效果)。 因此,这实际上是在说“在一个字符串中至少消耗一个或多个字符”,可以将其简化为.+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.