java正则表达式中“\\ d +”和“\\ d ++”之间的区别

时间:2013-04-24 04:38:52

标签: java regex

在java中,"\\d+""\\d++"之间有什么区别? 我知道++是一个占有量词,但匹配数字串的区别是什么? 哪个字符串可以与"\\d+"匹配,但不能与"\\d++"匹配? 占有量词似乎只有量词".*"才有意义。这是真的吗?

2 个答案:

答案 0 :(得分:10)

即使整体比赛需要一些后退,占有量词也不会退缩。

因此,例如,正则表达式\d++0永远不会匹配任何输入,因为\d++将匹配所有数字,包括匹配正则表达式的最后一个符号所需的0

答案 1 :(得分:1)

\ d +表示:
\d表示数字(0-9范围内的字符),+表示1次或更多次。因此,\d+是1位或更多位数。

来自Quantifiers

\ d ++意味着

  

这称为占有量词,它们总是吃整个输入字符串,尝试一次(并且只有一次)匹配。与贪婪的量词不同,占有量词永远不会退缩,即使这样做也会使整体匹配成功。