-4

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

test?test; 1231@test;name=vonnegut

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

结果:name=vonnegut

4

3 回答 3

1

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

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

于 2012-10-11T07:59:04.467 回答
1

你可以试试这个

[^;]+=[^;]+

在 Regexr 上查看

[^;]+是一个否定字符类,它将匹配一系列+不是分号的字符(意味着至少一个)(它也将匹配换行符,所以如果你的字符串包含这些字符,那么你需要将它们添加到类中[^;\r\n]

于 2012-10-11T08:21:10.897 回答
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);
  }
}

您也可以直接进行正则表达式搜索。我将不得不查看那个(不要经常使用正则表达式),但你会很容易弄清楚这一点。可能已经有一个包含正确正则表达式的答案... ;)

于 2012-10-11T08:05:02.240 回答