捕获具有多个特殊字符的正则表达式组

时间:2012-10-11 07:53:21

标签: java regex

我无法从字符串中捕获值。 我有一个输入,但它没有任何格式,只是我们知道它与;特殊字符分开。

test?test; 1231@test;name=vonnegut

我想用给定的特殊字符拆分此输入,然后找到包含另一个特殊字符的结果,如=

结果如下:name=vonnegut

3 个答案:

答案 0 :(得分:1)

看看字符串的split()方法,它应该完全符合你的要求。

拆分“;”首先,然后在结果字符串上的“=”。

答案 1 :(得分:1)

你可以试试这个

[^;]+=[^;]+

here on Regexr

[^;]+是一个否定的字符类,它将匹配一系列不是分号的字符(+表示至少一个)(它也会匹配换行符,所以如果你的字符串要小心包含那些,然后你需要将它们添加到类[^;\r\n]

答案 2 :(得分:0)

String input = "test?test; 1231@test;name=vonnegut";
String[] splittedInput = input.split(",");
for (String str:splittedInput) {
  System.out.println(str);
}

给你

  

测试?测试
   1231 @测试
  名称=冯内果

现在,您可以测试下一个字符的每个字符串,例如:

for (String str:splittedInput) {
  if (str.contains("=") {
    System.out.println(str);
  }
}

您也可以直接进行正则表达式搜索。我必须看一下(不要经常使用正则表达式),但你会很容易理解。可能已经有一个包含正确的正则表达式的答案......;)