拆分此模式的最有效方法

Best efficient way to split this pattern

我有一个包含数千行的文件,如下所示:

node: { title: "0" label: "sub_401000" color: 76 textcolor: 73 bordercolor: black }

我需要的是提取标题值和标签值。例如在上面的行中。我需要提取 0 和 sub_401000。我可以拆分它们,但这需要很多时间。 我想知道执行此过程的最有效方法是什么?

您可以尝试使用此正则表达式并在可能的情况下编译它,因为它会被重复使用。 (注意:它用于使用括号捕获匹配项)

 (\w+): "*(\w*)

Debuggex Demo

应该做这样的事情(注意我假设标题和引号之间有一个 space。

public class Test {

    public static void main(String[] args) 
    {
        String str = "node: { title: \"0\" label: \"sub_401000\" color: 76 textcolor: 73 bordercolor: black }";
        //String regex = ".*title: \"(.*)\".*label: \"(.*)\""; better regex below suggested by pschemo
        String regex = "title: \"([^\"]*)\".*label: \"([^\"]*)\"";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(str);
        if(m.find())
        {
            String title = m.group(1);
            String label = m.group(2);
            System.out.println(title);
            System.out.println(label);
        }
    }
}

输出:

0

sub_401000