Java 如果某个单词在带有regex的行中出现的次数超过1,如何从字符串中删除该单词
如果单词Java 如果某个单词在带有regex的行中出现的次数超过1,如何从字符串中删除该单词,java,regex,Java,Regex,如果单词“”连续出现多次,我想删除它。范例 “word-word”变成了“word-word” 而“wordword”变成“wordword” 如果可能的话,我想用replace或replace all来保持简短 如果可能的话,我想使用replace或replace all以保持简短 当然,有可能: yourString = yourString.replaceAll("(<br>)+", "<br>"); yourString=yourString.replaceAl
“
”
连续出现多次,我想删除它。范例
“word-word
”
变成了“word-word
”
而“word
word
”
变成“word
word
”
如果可能的话,我想用replace或replace all来保持简短
如果可能的话,我想使用replace或replace all以保持简短
当然,有可能:
yourString = yourString.replaceAll("(<br>)+", "<br>");
yourString=yourString.replaceAll(“(
)+”,“
”);
它基本上意味着将所有“
一次或多次”替换为“
”只有在模式出现多次时,才能编写与之匹配的正则表达式。此代码适用于最简单的情况:
str.replaceAll("(<br>)+", "<br>");
str.replaceAll(“(
)+”,“
”);
但如果要替换所有br(不区分大小写+忽略空白),例如:
我的话
胡说八道->我的话
胡说八道
我建议你:
str.replaceAll("(?i)(<br>(\\s)*)+", "<br>")
str.replaceAll(“(?i)(
(\\s)*)+”,“
”)
aioobe更进一步,给了你答案。它也抓住了这个群体吗?@adarshr,你是什么意思?如果您询问是否可以在替换字符串中使用该组,答案是肯定的,通过$1
@adarshr-yes,它将为替换捕获一个组。糟糕的周期。如果你在寻找效率,你可以写(?:
){2,}
,但你可能想知道它是否值得。是的,这正是我的意思!)@用户521180:问题不完全是你的问题,但是。。。您确实想阅读第一个答案:)@Syntax,但第一个答案是一篇关于正则表达式的邪恶的难以理解的长篇大论,每个有标记的问题都会贴上他的链接。我想你的又多了一个。
str.replaceAll("(?i)(<br>(\\s)*)+", "<br>")