【问题标题】:Replace/remove String between two character [duplicate]替换/删除两个字符之间的字符串[重复]
【发布时间】:2011-04-14 23:22:39
【问题描述】:

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

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

从这里

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

到这里

"this is test"

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

【问题讨论】:

  • 我删除了 android 标签,因为它根本不是 android 特定的。

标签: java string


【解决方案1】:

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

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

原因是?应该用 2 个反斜杠转义,否则 JVM 编译器会抛出运行时错误非法转义字符你逃跑了吗?使用反斜杠的字符。但是,反斜杠 character() 本身就是一个特殊字符,因此您还需要使用另一个反斜杠对其进行转义。

【讨论】:

  • 我不明白计算机化的答案是如何获得 2 票的。它是固定的还是什么???。
  • 你能帮我理解第二个吗?我正在尝试替换 a : 和 a \n 之间的所有内容,并且 ":.*\n" 正在为我工​​作。第二个是什么?做什么?
  • 这应该是公认的答案,因为现在接受的答案不起作用。
【解决方案2】:

使用正则表达式:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2016-07-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      相关资源
      最近更新 更多