Java正则表达式拆分为任意数量的星号

Java正则表达式拆分为任意数量的星号,java,regex,Java,Regex,我正在学习regex(with),并试图找出如何解析以下字符串1***2,从而给我[1,2](不使用3星号的特定大小写)。可以有任意数量的星号需要拆分为一个分隔符,因此我要查找*字符后跟*通配符。分隔符也可以是字母 输出应仅为数字,因此我使用^-^0-9按其他内容进行分割 到目前为止,我已经尝试: input.split(“[^-^0-9]”)//给我[1,2] input.split([^-^0-9\\**])//给我[1***2] input.split([^-^0-9+\\**])//给我

我正在学习regex(with),并试图找出如何解析以下字符串
1***2
,从而给我
[1,2]
(不使用3星号的特定大小写)。可以有任意数量的星号需要拆分为一个分隔符,因此我要查找*字符后跟*通配符。分隔符也可以是字母

输出应仅为数字,因此我使用
^-^0-9
按其他内容进行分割

到目前为止,我已经尝试:

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

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

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

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

谢谢

您正在寻找

input.split("[*]+");
这将在一个或多个连续的星号上拆分字符串


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

中(如果分隔符可以是字母)

你可以用

\D+


请注意,
\*
在Java中不是转义字符,但它在Java中的正则表达式中。字符类
[]
中不需要第二个
^
,除非您试图不拆分
^
字符。我删除了它,它仍然通过了我的所有测试用例。谢谢我是一个regex noob,成功了!总之,
input.split([^-^0-9]+[*]*”修复了我使用***和其他分隔符的问题。编辑:10分钟内无法接受D:
[^\d]+