我想通过Java Regex只找到一个单词

时间:2012-05-22 20:45:13

标签: java regex

我有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)

请帮忙!

1 个答案:

答案 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。