我只想通过Java正则表达式找到其中的一个单词
我有如下1K个字符串,它们保存在一个字符串数组中,我只需要粗体字,它不是常量。所以想知道什么是最好的方法 (描述摘要:EME商业(变更请求),存档:假,名称:EME商业(变更请求),唯一名称:EME商业(变更请求)(JTS哨兵Id))(isInitialized:true,internalPublic:true,InternalVisibleTommbers:false,InternalVisibleTomaccessList:false,owningApplicationKey:JTS Sentinel Id,internalIsProcessProvider:false)我只想通过Java正则表达式找到其中的一个单词,java,regex,Java,Regex,我有如下1K个字符串,它们保存在一个字符串数组中,我只需要粗体字,它不是常量。所以想知道什么是最好的方法 (描述摘要:EME商业(变更请求),存档:假,名称:EME商业(变更请求),唯一名称:EME商业(变更请求)(JTS哨兵Id))(isInitialized:true,internalPublic:true,InternalVisibleTommbers:false,InternalVisibleTomaccessList:false,owningApplicationKey:JTS Sen
请帮助!好吧,看起来您是在请求字符串“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)
返回与括号中第一个“捕获”组匹配的字符串,([^,]+)
部分
为什么要在
str
上调用.toString()
?该变量的名称表明它已经是一个字符串了。你的问题是什么?为什么需要一个正则表达式?嗨,蒂姆,我有1K个这样的字符串保存在一个字符串数组中,我只需要'name:(在字符串后面,它不是常量)’所以我想知道什么是最好的方法。糟糕的格式和堆栈溢出充斥着类似的问题,所以,投了反对票。至于你的问题,这里是文档:哎呀!太糟糕了。我试过多次编辑。但我无能为力=(嗨,大卫,我想它有点问题。你能再检查一遍吗?是的,肯定是错了。我已经编辑过了。你可以点击“刚才”链接查看更改。Pattern replace=Pattern.compile(“/name:([^,]+)/”;Matcher Matcher=replace.Matcher(str.toString());System.out.println(Matcher.replaceAll(“\t”));你认为代码正确吗?我用它来获取整个字符串。