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

时间:2013-01-24 19:12:24

标签: java regex

我正在学习正则表达式(使用this site)并试图弄清楚如何解析以下字符串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]

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

谢谢!

2 个答案:

答案 0 :(得分:12)

您正在寻找

input.split("[*]+");

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

要在分隔符中添加其他字符(例如字母),请将其添加到[*] character class

答案 1 :(得分:3)

如果分隔符可以是字母..

你可以使用

\D+

OR

[^\d]+