關於正規表示式問號的幾種匹配,正規表示式匹配問號 不是問號的用法

2021-03-23 19:56:01 字數 2130 閱讀 5757

1樓:匿名使用者

(?:pattern) 匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行儲存供以後使用。這在使用 "或" 字元 (|) 來組合一個模式的各個部分是很有用。

例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡略的表示式。

(?!pattern) 負向預查,在任何不匹配 pattern 的字串開始處匹配查詢字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。

例如'windows (?!95|98|nt|2000)' 能匹配 "windows 3.1" 中的 "windows",但不能匹配 "windows 2000" 中的 "windows"。

預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始

2樓:匿名使用者

實際上有四種,內容太多偶就不貼了,你搜尋正規表示式 環視 可以找到更多內容。

(?<=expression)

逆序肯定環視,表示所在位置左側能夠匹配expression(?

逆序否定環視,表示所在位置左側不能匹配expression(?=expression)

順序肯定環視,表示所在位置右側能夠匹配expression(?!expression)

順序否定環視,表示所在位置右側不能匹配expression

3樓:匿名使用者

例如:<>。其中「(」後面緊跟的「?:」會告訴引擎對於組(value),不儲存匹配的值以供後向引用。

否定式向前檢視的語法是(?!檢視的內容)。

正規表示式匹配問號 不是問號的用法 15

4樓:紫薇參星

你的正規表示式多加了一個括號,而且沒有(.*)+的用法。

正確的正規表示式:^(.*)\.html\?page=(\d+)$

5樓:匿名使用者

應該是你表示式寫錯了, 左括號和右括號數目不匹配.你看一下html後面的括號沒有對應的左括號.

正規表示式中,星號加問號是匹配什麼(分開我知道),比如/a*?/究竟匹配的是什麼,請高人指點

6樓:匿名使用者

像+ * ? 以及{m,n}

這幾種量詞(匹配數量)預設是屬於貪婪量詞,進行貪婪匹配什麼叫做貪婪匹配呢?貪婪就是儘可能的多匹配,貪心的意思比如現在目標字串是 aaaa 四個a組成的字串a* 和 a+ 都會匹配 aaaa

a? 則會匹配 a

這就是貪婪匹配,實際運用中,有的時候我們卻希望儘可能少的匹配比如目標字串 a

b此時如果我們使用了貪婪量詞

.* 則會匹配 a

b 整個字串

可是我們只想要匹配第一對span標籤怎麼辦?此時就需要用到懶惰量詞,意思也很明顯了,能偷懶就偷懶,呵呵,懶惰量詞與貪婪量詞的差別就是在貪婪量詞的後面加個?號,就構成了懶惰量詞,如下表

貪婪量詞 懶惰量詞

a* a*?

a+ a+?

a? a??

a a?

還是以目標字串 aaaa 來討論

a*?*號是匹配0次或多次,要偷懶怎麼辦呢?當然是最少次數了,也就是0 所以在這裡匹配的結果是

沒有匹配到任何內容

a+?+是1次或多次,分析方法同上,最少次數是1次,所以匹配結果就是 a

a???是0次或1次,所以這裡也不進行匹配,會偷懶吧,呵呵再來看看剛剛的ab

要匹配第一對span,用懶惰量詞就是.*?

7樓:匿名使用者

懶惰匹配

比如 字元為

這裡是測試

這裡是重點

如果是.*?

那麼是匹

配這裡是測試

如果是.*

那麼是匹配 這裡是測試

這裡是重點

正規表示式 匹配問好星號

正規表示式如何匹配出最短字串,正規表示式如何匹配除某些字串以外的所有字元

當正規表示式中包含能接受重複的限定符時,通常的行為是 在使整個表示式能得到匹配的前提下 匹配儘可能多的字元。考慮這個表示式 a.b,它將會匹配最長的以a開始,以b結束的字串。如果用它來搜尋aabab的話,它會匹配整個字串aabab。這被稱為貪婪匹配。有時,我們更需要懶惰匹配,也就是匹配儘可能少的字元...

求正規表示式分割aa ee得到,求正規表示式 分割 aa bb cc dd ee 得到 aa , bb , cc , dd , ee

str.match w g str.match w u4e00 u9fa5 g 支援中文 aa bb 標準的表示 包含aa,且包含bb 的模式,對aa和bb的出現順序無要求,但這是偵測,不能 獲,要想捕獲內容,就需要把邊界定義清楚。在你沒有說清楚的時候,暫以 包含aa和bb的一行文字 為捕獲內容來理...

正規表示式特殊符號 冒號,如何使用正規表示式提取冒號後面的內容

與其輸bai入之後再判斷,不如du限制輸入,當前前zhi提是這dao些特殊符號是無內效的 如果你需 容要這些特殊符號只是想暫時去除,應該是用for來一個一個找,效率高點,而不是if txt.indexof 0 txt.indexof 0 寫一大串的條件 你直接定義一個chararray,加入 之類的...