Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果某个单词在带有regex的行中出现的次数超过1,如何从字符串中删除该单词_Java_Regex - Fatal编程技术网

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>")