我想从下面给出的字符串myInfo
中获取test
值:
public class Test {
public static void main(String[] args) {
String test = "{q=code=in=(100,110,120,100);product=in=(393,393);ID==33323323, myInfo==test, offset=0, limit=200}";
}
}
预期产量:
test
如何拆分并获得所需的值?
最佳答案
此任务的可能解决方案之一是使用Pattern class。
这是代码演示:
public class RegexDemo {
public static void main(String[] args) {
String test = "{q=code=in=(100,110,120,100);product=in=(393,393);ID==33323323, myInfo==test, offset=0, limit=200}";
printMyInfoValue(test);
}
private static void printMyInfoValue(String test) {
Pattern pattern = Pattern.compile("\\s+myInfo==(\\w+)");
Matcher matcher = pattern.matcher(test);
if (matcher.find()) {
System.out.printf("My Info value: %s\n", matcher.group(1).trim());
}
}
}
输出:
测试
在正则表达式中,我们正在检查
myInfo
是否出现在文本中。如果是,则将结果用括号()
分组。对于索引为0
group(0)
的组,我们将具有完整的正则表达式值:myInfo == test
对于1组
group(1)
仅值:测试
这正是我们在寻找的东西。
如果没有输入
myInfo
的text
键->没有打印结果。