簡體   English   中英

正則表達式量詞和字符類

[英]Regex quantifiers and character classes

Java教程中提供了正則表達式量詞的示例和說明。

貪婪-先吃完整串然后再退一個字符然后重試

 Regex: .*foo // greedy String to search: xfooxxxxxxfoo Found "xfooxxxxxxfoo" 

不情願-從頭開始,然后一次吃一個角色

 Regex: .*?foo // reluctant quantifier String to search: xfooxxxxxxfoo Found "xfoo", "xxxxxxfoo" 

擁有-嘗試一次嘗試吃整個字符串

 Regex: .*+foo // possessive quantifier String to search: xfooxxxxxxfoo No match found 

它們還可以,我理解它們,但是有人可以向我解釋一下,將正則表達式更改為字符類時會發生什么? 還有其他規定嗎?

 Regex: [fx]* String to search: xfooxxxxxxfoo Found "xf","","","xxxxxxf","","","","" Regex: [fx]*? String to search: xfooxxxxxxfoo Found 15 zero-length matches Regex: [fx]*+ String to search: xfooxxxxxxfoo Found "xf","","","xxxxxxf","","","","" 

它將量詞(貪婪,不情願/懶惰,占有欲)應用於整個角色類。 這意味着它將匹配(貪婪地,懶惰地等)字符類中的每個文字字符。

Regex: [fx]*
String to search: xfooxxxxxxfoo
Found "xf","","","xxxxxxf","","","",""

因此它尋找fx零個或多個。 引擎找到匹配的xf 它還匹配兩個o周圍的空字符串。 然后,它匹配連續的x ,因為它是fx的零或更大

我會在regex101.com上查看有關regexes的更多詳細信息,尤其是左側欄中的調試器部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM