Java-使用正则表达式将字符串拆分为不同的字段

Java-使用正则表达式将字符串拆分为不同的字段,java,regex,string,Java,Regex,String,有人知道如何将WS返回的字符串拆分为不同的字符串吗 String wsResult = "SONACOM RC, RUE DES ETOILES N. 20, 75250 PARIS (MI)"; 我试图将其分为: String name = "SONACOM RC"; String adress = "RUE DES ETOILES N. 20"; String postalCode = "75250"; String city = "PARIS"; 注意:WS的返回只更改我的参数中的内容

有人知道如何将WS返回的字符串拆分为不同的字符串吗

String wsResult = "SONACOM RC, RUE DES ETOILES N. 20, 75250 PARIS (MI)";
我试图将其分为:

String name = "SONACOM RC";
String adress = "RUE DES ETOILES N. 20";
String postalCode = "75250";
String city = "PARIS";
注意:WS的返回只更改我的参数中的内容


提前感谢您的帮助

一种简单的方法是使用
wsResult.split(“,”
)。但是,您必须在
75250
Paris
之间添加一个逗号:

String wsResult = "SONACOM RC, RUE DES ETOILES N. 20, 75250, PARIS (MI)";
String[] temp = wsResult.split(",");
String name = temp[0];
String adress = temp[1];
String postalCode = temp[2];
String city = temp[3];
使用它,您将获得所需的输出

编辑

获取输出而不添加逗号的另一种方法是这样做(也使用上面的代码):


对于(int i=1;i您可以在4个捕获组中捕获数据。您提供的示例使用大写字符,可以与
[A-Z]
匹配。 如果要同时匹配小写字符、数字和下划线,可以将
[A-Z]
[A-Z\d]
替换为
\w
。 您可以通过多种方式实现这一点。一种方法可以是:

解释

  • 组1:匹配一个或多个大写字符或空格
    ([a-Z]+)
  • 匹配逗号和一个或多个空格
    ,+
  • 组2:匹配一个或多个大写字符或数字、空格或点
    ([A-Z\d.]+)
  • 匹配逗号和一个或多个空格
    ,+
  • 组3:匹配一个或多个数字
    (\d+)
  • 匹配一个或多个空格
    +
  • 第4组:匹配一个或多个大写字符或数字、开/闭括号或空格
    ([A-Z\d()]+)

到目前为止,您尝试了什么?什么不起作用?您需要一个常量结构才能使用正则表达式或
.split
。您的问题不清楚这种情况是否适用。您确定地址部分本身不会有任何逗号吗?如果是这种情况,您可以使用正则表达式来查找组。类似这样的情况可能不适用rk在您的例子中:(.*),(.*),(\d{5})()您可以在线检查regexp的行为,例如:取决于您想如何解析该信息…
(?[\w.-+?)\s*,\s*(?[\w.-]+?)\s*,\s*(?\d+\s*(?[^())+)(?:\s+.*)$
\s*,\s*(?@ctwheels看起来像Python regex,不是吗?
for(int i = 1; i<postalCode.length(); i++){

    if(postalCode.charAt(i) == ' ') {
        city = postalCode.substring(i,postalCode.length());
        postalCode = postalCode.substring(0,i);
        break;
    }

}