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

时间:2010-09-21 01:16:06

标签: java string

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

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

从此

"this #?anystring; is  #?anystring2jk; test"

到此

"this is test"

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

3 个答案:

答案 0 :(得分:14)

@computerish你的答案是用Java中的错误执行的。修改后的版本有效。

myString.replaceAll("#\\?.*?;", "");

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

答案 1 :(得分:7)

使用正则表达式:

myString.replaceAll("#\?.*?;", "");

答案 2 :(得分:2)

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

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