从特定模式拆分字符串

时间:2018-07-24 20:18:40

标签: java string

如何将这个字符串从模式转换为两个不同的变量?

字符串:"[ADDRESS] Custom address n 1"
变量 type "ADDRESS",变量 field "Custom address n 1"
是否可以不对每个字符进行复杂的循环检查?

2 个答案:

答案 0 :(得分:5)

您可以将正则表达式用于捕获组:

Pattern p = Pattern.compile("\\[(.*)\\] (.*)");
Matcher m = p.matcher("[ADDRESS] Custom address n 1");
if (m.find()) {
    String type = m.group(1);
    String field = m.group(2);
}

答案 1 :(得分:2)

您应该使用此正则表达式:

\[([^\]]*)\](.*)

对于字符串"[ADDRESS] Custom address n 1"

  • 第1组为“地址”
  • 第2组为“自定义地址n 1”