正则表达式中"*"的作用是什么?

JSO*_*SON 8 java regex

我的Java源代码:

String result = "B123".replaceAll("B*","e");
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

输出是:ee1e2e3e.为什么?

And*_*rup 21

'*'表示前一个字符的零个或多个匹配.因此每个空字符串将替换为"e".

您可能想要使用'+'代替:

replaceAll("B+", "e")


Dan*_*fer 7

你想要这个你的模式:

B+
Run Code Online (Sandbox Code Playgroud)

你的代码将是:

String result = "B123".replaceAll("B+","e");
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

"*"匹配"零或更多" - 而"零"包括B之前以及所有其他字符之间的任何内容.