【发布时间】:2011-04-14 23:22:39
【问题描述】:
我想删除两个字符之间的字符串以及字符本身,例如:
我想替换所有出现在“#?”之间的字符串和 ”;”并将其与字符一起删除。
从这里
"this #?anystring; is #?anystring2jk; test"
到这里
"this is test"
我怎么能在java中做到这一点?
【问题讨论】:
-
我删除了 android 标签,因为它根本不是 android 特定的。
我想删除两个字符之间的字符串以及字符本身,例如:
我想替换所有出现在“#?”之间的字符串和 ”;”并将其与字符一起删除。
从这里
"this #?anystring; is #?anystring2jk; test"
到这里
"this is test"
我怎么能在java中做到这一点?
【问题讨论】:
@computerish 您的答案在 Java 中出现错误。修改后的版本有效。
myString.replaceAll("#\\?.*?;", "");
原因是?应该用 2 个反斜杠转义,否则 JVM 编译器会抛出运行时错误非法转义字符。 你逃跑了吗?使用反斜杠的字符。但是,反斜杠 character() 本身就是一个特殊字符,因此您还需要使用另一个反斜杠对其进行转义。
【讨论】:
使用正则表达式:
myString.replaceAll("#\?.*?;", "");
【讨论】:
string.replaceAll(start+".*"+end, "")
是一个简单的起点。但是,您可能必须处理正则表达式运算符中的greediness。
【讨论】: