Java 从特定模式拆分字符串

Java 从特定模式拆分字符串,java,string,Java,String,如何将该字符串从一个模式转换为两个不同的变量 字符串:“[地址]自定义地址n 1” 变量类型将是“地址”,变量字段将是“自定义地址n 1” 是否可以不对每个字符进行复杂的循环检查?您可以将正则表达式用于捕获组: Pattern p = Pattern.compile("\\[(.*)\\] (.*)"); Matcher m = p.matcher("[ADDRESS] Custom address n 1"); if (m.find()) { String type = m.group

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

字符串:
“[地址]自定义地址n 1”

变量类型将是
“地址”
,变量字段将是
“自定义地址n 1”


是否可以不对每个字符进行复杂的循环检查?

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

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);
}

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

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);
}

您应该使用以下正则表达式:

\[([^\]]*)\](.*)
对于字符串
“[地址]自定义地址n 1”

  • 第一组是“地址”
  • 组2将是“自定义地址n 1”

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

\[([^\]]*)\](.*)
对于字符串
“[地址]自定义地址n 1”

  • 第一组是“地址”
  • 组2将是“自定义地址n 1”

使用正则表达式解析。一种方法是使用正则表达式将字符串解析为两组,一组包含“[…]”,另一组包含其余字符串。然后您就可以将这些部分提取到您想要的任何内容中。
“地址自定义地址n 1”。拆分(“,2)
键入
=内部的任何内容
[]
(不包括它们)<代码>字段=REST使用简单正则表达式从模式中获取信息。请参阅使用正则表达式解析。一种方法是使用正则表达式将字符串解析为两组,一组包含“[…]”,另一组包含其余字符串。然后您就可以将这些部分提取到您想要的任何内容中。
“地址自定义地址n 1”。拆分(“,2)
键入
=内部的任何内容
[]
(不包括它们)<代码>字段=REST使用简单正则表达式从模式中获取信息。请参见@Andreas,
*?
也有同样的好处吗?@shmosel没有,但比
*
好,因为
*
一直到最后,然后从那里返回。根据regex101,
\[(.*)\](.*)
是50步,
\[(.*)\)(.*)
是24步,
\[([^\]]*)\](.*)
是10步。@shmosel没有,但比
*
好,因为
*
一直走到最后,然后从那里返回。根据regex101,
\[(.*)\](.*)
是50个步骤,
\[(.*?)\](.*)
是24个步骤,
\[([^\]]*)\](.*)
是10个步骤。