我想通过连字符解析,答案应该是0 0 1(整数),这可能是在java中解析的最佳方法
public static String str ="[0-S1|0-S2|1-S3, 1-S1|0-S2|0-S3, 0-S1|1-S2|0-S3]";
请帮帮我。
答案 0 :(得分:4)
将以下正则表达式与Pattern和matcher类一起使用。
Pattern.compile("\\d+(?=-)");
\\d+
- 匹配一个或多个数字。 +
重复上一个令牌\\d
(与数字字符匹配)一次或多次。
(?=-)
- 只有在后跟连字符的情况下。 (?=-)
称为正向前瞻断言,断言匹配必须后跟-
符号。
String str ="[0-S1|0-S2|1-S3, 1-S1|0-S2|0-S3, 0-S1|1-S2|0-S3]";
Matcher m = Pattern.compile("\\d+(?=-)").matcher(str);
while(m.find())
{
System.out.println(m.group());
}
答案 1 :(得分:0)
一种懒惰的方式:如果您已经知道字符串的模式,请使用substring和indexof来定位您的单词。
String str ="[0-S1|0-S2|1-S3, 1-S1|0-S2|0-S3, 0-S1|1-S2|0-S3]";
integer int1 = Integer.parseInt(str.substring(str.indexOf("["),str.indexOf("-S1")));
等等。