-1

我有 1K 字符串,如下所示,它们保存在字符串数组中,我只需要粗体字,它们不是常量)'。所以想知道什么是最好的方法。

(descSummary: EME Commercial (Change Request), archived: false, name: EME Commercial (Change Request) , uniqueName: EME Commercial (Change Request)(JTS-Sentinel-Id)) (isInitialized: true, internalPublic: true, internalVisibleToMembers:假,internalVisibleToAccessList:假,owningApplicationKey:JTS-Sentinel-Id,internalIsProcessProvider:假)

请帮忙!

4

1 回答 1

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?该变量的名称表明它已经是一个字符串。

于 2012-05-22T21:04:42.317 回答