加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – *和**的区别

发布时间:2020-12-15 04:34:04 所属栏目:Java 来源:网络整理
导读:*和**有什么区别?为什么.**在使用pattern.compile(“.**”)时没有编译;? 解决方法 请参阅 Java Quantifiers 参考: Greedy Reluctant Possessive MeaningX? X?? X?+ X,once or not at allX* X*? X*+ X,zero or more timesX+ X+? X++ X,one or more timesX{
*和**有什么区别?为什么.**在使用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

没有**量词.当你使用after,*或? (或者甚至是{n,m}),您可以创建占有量词(参见上表),但在*之后添加*量词被视为用户错误.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读