使用Java正则表达式删除成对hashtag之间的内容##

使用Java正则表达式删除成对hashtag之间的内容##,java,regex,Java,Regex,在Java中,是否有一种更快速的方法使用正则表达式来删除成对hashtag中的内容? 我会举一些例子: When user logs in ## //Expected Result: When user logs in ## When user logs in # //Expected Result: When user logs in # When user logs in #the system# //Expected Result: When user logs in ## When u

在Java中,是否有一种更快速的方法使用正则表达式来删除成对hashtag中的内容? 我会举一些例子:

When user logs in ## //Expected Result: When user logs in ##
When user logs in #  //Expected Result: When user logs in #
When user logs in #the system# //Expected Result: When user logs in ##
When user logs in #the system  //Expected Result: When user logs in #the system
When user logs in #the system# named #test //Expected Result: When user logs in ## named #test
我见过删除括号中内容的例子,但这有点不同,因为“(“and”)是不同的字符,如果我简单地使用,编译器无法区分
#系统#
#测试
之间的内容。您可以使用:

str = str.replaceAll("(?!<#)#[^#]+#(?!#)", "##);

str=str.replaceAll((?!#。*?#?#将是另一个选项!我在解决方案中使用了
+?#
,而不是
#.
,因为OP希望保持
#
未被触及。这是一种工作方式,但当我输入
“abc”
时,它会删除
之间的空间。