[英]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","","","",""
因此它寻找f
或x
零个或多个。 引擎找到匹配的xf
。 它还匹配两个o
周围的空字符串。 然后,它匹配连续的x
,因为它是f
或x
的零或更大 。
我会在regex101.com上查看有关regexes的更多详细信息,尤其是左侧栏中的调试器部分
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.