Java 需要正则表达式帮助-V2格式

Java 需要正则表达式帮助-V2格式,java,regex,groovy,Java,Regex,Groovy,可能重复: 我试图用以下模式将两个或多个出现的(如)标记与两个标记一起替换 Pattern brTagPattern = Pattern.compile("(<\\s*br\\s*/\\s*>\\s*){2,}", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); Pattern brTagPattern=Pattern.compile(“(\\s*){2,}”, Pattern.CASE|u不敏感| Pattern.DOTALL);

可能重复:

我试图用以下模式将两个或多个出现的
(如


)标记与两个

标记一起替换

Pattern brTagPattern = Pattern.compile("(<\\s*br\\s*/\\s*>\\s*){2,}",
    Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Pattern brTagPattern=Pattern.compile(“(\\s*){2,}”,
Pattern.CASE|u不敏感| Pattern.DOTALL);
但在某些情况下,“

”标记带有空格,它们被4个
标记替换,而实际上应该被2个标记替换


我该怎么做才能忽略标记之间的2或3(很少)个空格?

您可以通过稍微更改正则表达式来做到这一点:

Pattern brTagPattern = Pattern.compile("<\\s*br\\s*/\\s*>\\s*<\\s*br\\s*/\\s*>\\s*", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Pattern brTagPattern=Pattern.compile(“\\s*\\s*”,Pattern.CASE不区分大小写| Pattern.DOTALL);
这将忽略两个
之间的所有空格。如果您只需要2或3个,可以使用:

Pattern brTagPattern = Pattern.compile("<\\s*br\\s*/\\s*>(\\s){2,3}<\\s*br\\s*/\\s*>\\s*", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Pattern brTagPattern=Pattern.compile(“(\\s){2,3}\\s*”,Pattern.CASE|u不区分| Pattern.DOTALL);

exact duplicate of You在问题标签下方有一个“edit”(编辑)链接,可用于编辑原始问题。不需要开一个新的。正如你所看到的,这些将很快关闭,并赢得你的反对票。但是你肯定应该回答对上一个问题的评论,也可以编辑你的问题。@Tim Pietzcker:谢谢Tim,我对这一点有点陌生,而且很匆忙:)这两行都不会用Java编译。我使用的语法与用户在问题中使用的语法相同,我不知道他使用的语言。我只是用他语法(他没有说是java)在中间添加了他需要的东西。在Java中,您应该对字符进行双重转义(但在这种情况下,您应该更改问题),因为编辑时使用了正确的语法,问题始终标记为Java,问题中的正则表达式很好,并且工作正常。不需要更改正则表达式