2012-02-14 98 views
1

是什么正则表达式*和表达之间的差异.**的意思是 - 出现任意次数任意字符,以及.*含义发生的任何字符零次或多次。两者基本上意味着相同。有人可以解释一下这个区别吗?*之间的差异*在正则表达式中的Java

+0

我之前并没有意识到这一点,但现在,我已经回顾了以前的问题并接受了最相关的答案 – Gaurav 2012-02-16 05:54:26

回答

13

没有,*量词修饰的正则表达式的以前字符,组或字符类的意思。它本身是没有意义的。它只在与正则表达式中的正则表达式结合时才带有意义。

所以,.*意味着发生0次或多次任意字符,a*意味着a出现0次或更多次,并依此类推。

1

在正则表达式*本身并不意味着什么。它修改了它前面的表达式。可能与通配符混淆,其中*与正则表达式中的.*意思相同。在正则表达式*本身或作为表达式中的第一个字符是非法的。

0

ab*de将匹配adeabdeabbdeabbbdeabbbbde等。

ab.*de将匹配除ade以外的全部。

+0

第一条语句不正确,'ab * de'将匹配'abde'和'abbbbbde'但不是'abcde' – 2012-02-14 13:55:49

1

的含义是:“X,零次或多次”(见here)。 *只是量词。

1

.表示任何字符。 *表示前面的字符(或组)0或更多次。所以.*意味着任何字符0或更多次。这就是它