繁体   English   中英

正则表达式'(?!^()$)'可以匹配吗?

[英]Can a regex '(?!^()$)' match anything?

问题

在一个非常特殊的情况下,我的否定前瞻是一个空列表:

(?!^()$)

是否有任何匹配的字符串?

澄清度

比方说:

(?!^()$)^(.*)$

它会匹配所有东西吗?

从字面上看,空字符串旁边的任何东西。

正则表达式包含(?!^()$)^(.*)$

  1. (?!^()$)空字符串的零宽度负匹配。 按照顺序, string.Empty不在列。

  2. ^(.*)$完全匹配除换行1重复0到很多次以外的所有内容,因此基本上是任何内容。

注意:1.例外换行符

(?!^()$)可以简化为(?!^$)因为()是一个空组,并且将始终在任何位置匹配。

因此,现在您说的是“在开始和结束锚点彼此不相邻的任何位置进行匹配,换句话说,我们不是在空字符串上”。

因此(?!^$) 可以在不仅为空或换行的字符串中的每个位置都匹配

(?!^()$)^(.*)$是“到处都匹配,但在空字符串处”加上^.*$将“匹配并消耗每行,无论是否为空”(锚点^$没有在这种情况下效果)。 因此,这实际上是在说“在一个字符串中至少消耗一个或多个字符”,可以将其简化为.+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM