替换/删除两个字符之间的字符串

Jim*_*mmy 6 java string

我想删除两个字符之间的字符串以及字符本身,例如:

我想替换"#?"之间所有出现的字符串 和";" 并用字符删除它.

由此

"this #?anystring; is  #?anystring2jk; test"
Run Code Online (Sandbox Code Playgroud)

对此

"this is test"
Run Code Online (Sandbox Code Playgroud)

我怎么能在java中做到这一点?

A_V*_*Var 16

@computerish您的答案在Java中出错.修改后的版本有效.

myString.replaceAll("#\\?.*?;", "");
Run Code Online (Sandbox Code Playgroud)

原因是?应该被2个反斜杠转义,否则JVM编译器会抛出运行时错误非法转义字符.你逃脱了?使用反斜杠的字符.但是,反斜杠字符()本身就是一个特殊字符,所以你需要使用另一个反斜杠来转义它.

  • 我不明白计算机的答案如何有 2 票。是固定的还是什么??? (2认同)

Com*_*ish 7

使用正则表达式:

myString.replaceAll("#\?.*?;", "");
Run Code Online (Sandbox Code Playgroud)


Car*_*arl 5

string.replaceAll(start+".*"+end, "")

是一个简单的起点。但是,您可能必须处理正则表达式运算符的贪婪性。