我试图用java正则表达式来提取数据。它与我的数据相匹配,但我无法获取组数据。我试图获取数据1,xmlAggregator,268803451,3。看看文档,我假设如果我把()放在\ d +和\ w +中,我会得到组中的数字和字符串。有关如何更改正则表达式的任何建议?获取正则表达式数据
字符串:
Span(trace_id:1, name:XmlAggregator, id:268803451, parent_id:3)
Java代码:
String pattern="Span\\(trace_id:(\\d+), name:(\\w+), id:(\\d+), parent_id:(\\d+), (duration:(\\d+))*"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(line); int count = 0; while(m.find()) { System.out.println("Match number "+count); System.out.println("start(): "+m.start()); System.out.println("end(): "+m.end()); System.out.println("Found value: " + m.group(count)); count++; }
输出:
Match number 0 start(): 0 end(): 64 Found value: Span(trace_id:1, name:XmlAggregator, id:268803451, parent_id:3,
希望能得到:
Found value: 1 Found value: XmlAggregator Found value: 268803451 Found value: 3
什么是预期输出? –
找到的值:1 \ n 找到的值:XmlAggregator \ n 找到的值:268803451 \ n 找到的值:3 \ n – Arun
请编辑您的问题并添加它。 –