如何从java字符串中获取连字符之前的所有整数

如何从java字符串中获取连字符之前的所有整数,java,regex,Java,Regex,我想通过连字符进行解析,答案应该是01(整数),在java中解析的最佳方式是什么 public static String str ="[0-S1|0-S2|1-S3, 1-S1|0-S2|0-S3, 0-S1|1-S2|0-S3]"; 请帮助我。将下面的正则表达式与Pattern和matcher类一起使用 Pattern.compile("\\d+(?=-)"); \\d+-匹配一个或多个数字+将上一个标记\\d(与数字字符匹配)重复一次或多次 (?=-)-仅当后跟连字符时(?=-)称为

我想通过连字符进行解析,答案应该是01(整数),在java中解析的最佳方式是什么

public static String  str ="[0-S1|0-S2|1-S3, 1-S1|0-S2|0-S3, 0-S1|1-S2|0-S3]";

请帮助我。

将下面的正则表达式与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());
}

将下面的正则表达式与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());
}

一种懒惰的方法:如果您已经知道字符串的模式,那么使用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")));

依此类推。

一种懒惰的方法:如果您已经知道字符串的模式,请使用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")));

等等。

请向我们提供您迄今为止为实现所需功能所做的尝试。我尝试了一些String[]parts=str.split[“-”]etc请向我们提供您迄今为止为实现所需功能所做的尝试。我尝试了一些String[]parts=str.split[“-”]etc您可以详细介绍一下吗,我是java新手。你能详细介绍一下吗,我是java新手。