我想删除两个字符之间的字符串以及字符本身,例如:
我想替换“#?”之间所有字符串的出现和“;”并用字符删除它。
从此
"this #?anystring; is #?anystring2jk; test"
到此
"this is test"
我怎么能在java中做到这一点?
答案 0 :(得分:14)
@computerish你的答案是用Java中的错误执行的。修改后的版本有效。
myString.replaceAll("#\\?.*?;", "");
原因是什么?应该被2个反斜杠转义,否则JVM编译器会抛出运行时错误非法转义字符。 你逃脱了吗?使用反斜杠的字符。但是,反斜杠字符()本身就是一个特殊字符,所以你需要使用另一个反斜杠来转义它。
答案 1 :(得分:7)
使用正则表达式:
myString.replaceAll("#\?.*?;", "");
答案 2 :(得分:2)
string.replaceAll(start+".*"+end, "")
是一个简单的起点。但是,您可能必须处理greediness正则表达式运算符。