gpt4 book ai didi

java - *和**区别

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:02 24 4
gpt4 key购买 nike

*** 有什么区别?为什么 .** 在使用 pattern.compile(".**"); 时不编译?

最佳答案

参见 Java Quantifiers引用:

Greedy  Reluctant   Possessive  Meaning
X? X?? X?+ X, once or not at all
X* X*? X*+ X, zero or more times
X+ X+? X++ X, one or more times
X{n} X{n}? X{n}+ X, exactly n times
X{n,} X{n,}? X{n,}+ X, at least n times
X{n,m} X{n,m}? X{n,m}+ X, at least n but not more than m times

没有**量词。当您在 +*?(甚至 {n,m}),你可以创建一个占有量词(见上表),但是在*之后添加一个*量词被认为是一个用户错误

这就是为什么 .* 会匹配除换行符(没有 Pattern.DOTALL 修饰符)和 .** 以外的 0+ 个字符抛出异常。

请注意,在线正则表达式测试人员也会警告您这个问题:Dangling meta character '*' near index 2 .** ^ (同样的警告出现在 OCPSoft regex tester )。

关于java - *和**区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36991341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com