我有1K字符串,如下所示保存在String数组中,我只需要粗体字,这不是常量)'。所以想知道什么是最好的方式。
(descSummary:EME Commercial(变更请求),存档:false,名称:EME Commercial(变更请求),uniqueName:EME Commercial(变更请求)(JTS-Sentinel-Id))( isInitialized:true,internalPublic:true,internalVisibleToMembers:false,internalVisibleToAccessList:false,owningApplicationKey:JTS-Sentinel-Id,internalIsProcessProvider:false)
请帮忙!
答案 0 :(得分:2)
好吧,看起来你要求在字符串“name:”之后和下面的逗号之前的文本,所以你的正则表达式是/name: ([^,]+)/
<强>更新强>
我不明白你为什么要使用.replaceAll()
。
当它在Java字符串文字中时,您不需要斜杠来分隔正则表达式。许多人,像我一样,使用斜杠在普通文本中设置它。
如果要显示以粗体标记的细分,则需要以下内容:
Pattern pattern = Pattern.compile("name: ([^,]+)");
Matcher matcher = pattern.matcher(str.toString());
if (matcher.matches()) {
System.out.println(matcher.group(0));
System.out.println(matcher.group(1));
}
.group(0)
返回与模式匹配的整个字符串。 .group(1)
返回与括号中的第一个“已捕获”组匹配的字符串([^,]+)
部分。
为什么要在.toString()
上致电str
?该变量的名称表明它已经是一个String。