我无法从字符串中捕获值。我有一个输入,但它没有任何格式,只是我们知道它用;
特殊字符分隔。
test?test; 1231@test;name=vonnegut
我想用给定的特殊字符分割这个输入,然后找到包含另一个特殊字符的结果,如=
.
结果:name=vonnegut
看一下字符串的 split() 方法,它应该完全符合您的要求。
在“;”上拆分 首先是结果字符串上的“=”。
你可以试试这个
[^;]+=[^;]+
[^;]+
是一个否定字符类,它将匹配一系列+
不是分号的字符(意味着至少一个)(它也将匹配换行符,所以如果你的字符串包含这些字符,那么你需要将它们添加到类中[^;\r\n]
)
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);
}
}
您也可以直接进行正则表达式搜索。我将不得不查看那个(不要经常使用正则表达式),但你会很容易弄清楚这一点。可能已经有一个包含正确正则表达式的答案... ;)