Java 避免使用多重分割方法

Java 避免使用多重分割方法,java,Java,我有一根这样的绳子 //Locaton;RowIndex;maxRows=New York, NY_10007;1;4 从这里我只需要得到纽约这个国家的名字。 如何在一个单步代码中实现 我曾经 String str = "Locaton;RowIndex;maxRows=New York, NY_10007;1;4 "; str = str.split("=")[1]; str = str.split(",")[0] 上面的代码包含很多拆分。如何避免这种情况。 我只

我有一根这样的绳子

   //Locaton;RowIndex;maxRows=New York, NY_10007;1;4 
从这里我只需要得到纽约这个国家的名字。 如何在一个单步代码中实现

我曾经

   String str = "Locaton;RowIndex;maxRows=New York, NY_10007;1;4 ";
   str = str.split("=")[1];
   str = str.split(",")[0]
上面的代码包含很多拆分。如何避免这种情况。
我只想使用单个代码获取合同名称。

尝试使用以下正则表达式
“=(.*)”

   String str = "Locaton;RowIndex;maxRows=New York, NY_10007;1;4 ";
    Pattern pattern = Pattern.compile("=(.*?),");
    Matcher matcher = pattern.matcher(str);
    if (matcher.find()) {
        System.out.println(matcher.group(1));
    }
输出:

   New York
使用
matcher.group(1)
意味着捕获组可以很容易地提取正则表达式匹配的一部分,括号还可以创建一个编号的捕获组。 它将字符串中与正则表达式部分匹配的部分存储在括号内


尝试使用以下正则表达式:“=(.*)”:

   String str = "Locaton;RowIndex;maxRows=New York, NY_10007;1;4 ";
    Pattern pattern = Pattern.compile("=(.*?),");
    Matcher matcher = pattern.matcher(str);
    if (matcher.find()) {
        System.out.println(matcher.group(1));
    }
输出:

   New York
使用
matcher.group(1)
意味着捕获组可以很容易地提取正则表达式匹配的一部分,括号还可以创建一个编号的捕获组。 它将字符串中与正则表达式部分匹配的部分存储在括号内


使用带有正则表达式的捕获组可以完美地捕获字符串中的特定数据

  String str = "Locaton;RowIndex;maxRows=New York, NY_10007;1;4 ";
   String pattern = "(.*?=)(.*?)(,.*)";
   Pattern r = Pattern.compile(pattern);

   Matcher m = r.matcher(str);

   if (m.find()) {
       System.out.println("Group 1: " + m.group(1));
       System.out.println("Group 2: " + m.group(2));
       System.out.println("Group 3: " + m.group(3));
   }
这是输出

Group 1: Locaton;RowIndex;maxRows=
Group 2: New York
Group 3: , NY_10007;1;4 

使用带有正则表达式的捕获组可以完美地捕获字符串中的特定数据

  String str = "Locaton;RowIndex;maxRows=New York, NY_10007;1;4 ";
   String pattern = "(.*?=)(.*?)(,.*)";
   Pattern r = Pattern.compile(pattern);

   Matcher m = r.matcher(str);

   if (m.find()) {
       System.out.println("Group 1: " + m.group(1));
       System.out.println("Group 2: " + m.group(2));
       System.out.println("Group 3: " + m.group(3));
   }
这是输出

Group 1: Locaton;RowIndex;maxRows=
Group 2: New York
Group 3: , NY_10007;1;4 

你能向像我这样的非正则表达式专家解释为什么我们需要捕获组中的“?”吗?你能向像我这样的非正则表达式专家解释为什么我们需要捕获组中的“?”吗?