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

11
我想删除两个字符之间的一个字符串,包括这两个字符本身,比如说:

我想用这个字符替换所有出现在“#?”和“;”之间的字符串,并将其与字符一起删除。

从这里开始:

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

转换为:

这个
"this is test"

我应该如何在 Java 中实现它?


我删除了Android标签,因为它根本不是与Android相关的。 - f1sh
3个回答

21

@computerish 您的Java答案存在错误。修改后的版本可正常运行。

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

需要进行转义的原因是 ? 符号必须用2个反斜杠进行转义,否则JVM编译器将抛出运行时错误 非法转义字符要转义问号,需要使用反斜杠字符 \ ,但是反斜杠字符本身也是一个特殊字符,所以您还需要再次使用反斜杠进行转义。


2
我不明白computerish的答案为什么有两个赞。是固定的还是怎么样? - A_Var
你能帮我理解第二个问号吗?我正在尝试替换冒号和换行符之间的所有内容,":.*\n" 对我有用。第二个问号是什么作用? - Travis Needham
这应该是被接受的答案,因为现在被接受的那个不起作用。 - Akito

12

使用正则表达式:

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

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接