我想从下面给出的字符串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)仅值:


测试


这正是我们在寻找的东西。
如果没有输入myInfotext键->没有打印结果。

10-08 05:05