2

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

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

谢谢!

4

2 回答 2

12

你正在寻找

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

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

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

于 2013-01-24T19:14:07.947 回答
3

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

您可以使用

\D+

或者

[^\d]+
于 2013-01-24T19:22:27.597 回答