Java正则表达式与任意数量的星号分开

Gaʀ*_*ʀʀʏ 2 java regex

我正在学习正则表达式(使用此站点)并试图弄清楚如何解析以下字符串1***2给我[1,2](不使用3星号的特定情况).可以有任意数量的星号作为一个分隔符拆分,所以我正在寻找*char后跟*通配符.分隔符也可以是字母.

输出应该只是数字,所以我用它^-^0-9来分割其他一切.

到目前为止,我尝试过:

input.split("[^-^0-9]"); // 给我 [1, , ,2]

input.split("[^-^0-9\\**]"); // 给我 [1***2]

input.split("[^-^0-9+\\**]"); // 给我 [1***2]

\* 不起作用,因为它不被识别为有效的转义字符.

谢谢!

NPE*_*NPE 12

你在找

input.split("[*]+");
Run Code Online (Sandbox Code Playgroud)

这会将字符串拆分为一个或多个连续的星号.

要允许分隔符中的其他字符(例如字母),请将它们添加到[*] 字符类中.