Java中正则表达式中*和。*之间的差异

时间:2012-02-14 13:50:42

标签: java regex

正则表达式*和表达式.*之间有什么区别*的含义是 - 任何出现任意次数的字符,以及{{1}的含义}是任何出现零次或多次的字符。两者基本上都是一样的。有人可以解释一下这个区别吗?

5 个答案:

答案 0 :(得分:13)

不,*量词,用于修改正则表达式中上一个字符,组或字符类的含义。它本身就没有意义。只有当它与正则表达式中的内容相结合时,它才具有意义。

因此,.*表示任何字符出现0次或更多次,a*表示a出现0次或更多次,依此类推。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

.表示任何角色。 *表示前一个字符(或组)0次或更多次。所以.*表示任何字符0次或更多次。就是这样

答案 4 :(得分:0)

ab*de将匹配adeabdeabbdeabbbdeabbbbde等。

ab.*de将匹配ade以外的所有内容。