簡體   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