我想使用split
解析一个字符串来查找整数(正数和负数)。例如,dfgs#&-6d5.,b-dgj895-9-8
会变成数组[-6, 5, 895, -9, -8]
。
在英语中,正则表达式将是:
这些是单独的组件,但我不知道如何将它们连接在一起:
\D+
[^-(?=[0-9])]
(?=-[0-9]+)
答案 0 :(得分:2)
听起来split
听起来并不像你想要的那样。使用Pattern
/ Matcher
似乎更符合您的目标:
String text = "dfgs#&-6d5.,bdgj895-9-8";
Matcher m = Pattern.compile("-?\\d+").matcher(text);
while (m.find())
System.out.println(m.group());
-6 5 895 -9 -8
您可以使用List<String>
存储匹配项。
答案 1 :(得分:2)
split
显然不是获得所需结果的合适工具。但是,要使用split
,您可以使用此模式:
String[] nbs = text.split("(?>[^-0-9]+|-(?![0-9]))+|(?=-[0-9])");
但你需要删除空结果(可以在开头或结尾,取决于字符串)。