10

"\\d+"在java中,和有什么区别"\\d++"?我知道 ++ 是所有格量词,但是匹配数字字符串有什么区别?什么字符串可以匹配"\\d+"但不能用"\\d++"?占有量词似乎".*"仅对量词有意义。这是真的吗?

4

2 回答 2

12

占有量词不会后退,即使整体匹配需要一些后退。

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

于 2013-04-24T04:45:12.017 回答
3

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

\d++ 来自量词的意思

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

于 2013-04-24T04:42:55.673 回答