【问题标题】:how to replace angel bracket string如何替换尖括号字符串
【发布时间】:2013-08-14 23:10:52
【问题描述】:

我需要将所有看起来像 {\'\i} 的字符串替换为 i

我已经读过Java String ReplaceAll method giving illegal repetition error?

所以我尝试了

String word = "something{\\\'\\\i}".replaceAll("\\\\{\\\'\\\i}", "DONE");

但它不起作用,有人可以帮助我吗?

【问题讨论】:

  • 您为什么要替换与您在原始字符串中定义的字符串不同的字符串?

标签: java string replaceall


【解决方案1】:

replaceAll 需要正则表达式。不要试图让 RegEx 正确,而是使用 replace

String word = "something{\\'\\i}".replace("{\\'\\i}", "DONE");

【讨论】:

  • 好的,你说得对,谢谢,但如果我需要全部更换?它只是文本的一部分......所以我需要询问它是否仍然包含并再次“替换”直到它不包含?
  • replace 确实替换了所有出现的文本。
【解决方案2】:
<script>
    word = "{\'\i}";
    a = word.replace("{"," "");
    a = a.replace("}", "");
    a = a.replace("'", "");

</script>

只需使用要替换的字符创建另一个规则。 不是一个很好的解决方案,但它是最“干净”的。

【讨论】:

  • 这将替换各种其他东西,比如{1}' 的任何其他实例等等。它不是任何想象中最“干净”的,它只是迟早会出错。
  • 这只会替换他想要的任何字符。只需为每个规则创建一个规则...如果初始字符串为 {1},则输出将为 1,这就是我们想要的。或者至少我是这么认为的
  • 但是他不想在没有其他限制的情况下删除所有这些字符,如果它们在i 周围,他想删除这些字符。在某些情况下,您的代码会产生很多副作用;例如考虑(任意选择的)字符串"{x} 'hello' {\'\i}" - 您的解决方案导致"x hello \\i",所需的结果是"{x} 'hello' i"。请注意,您的解决方案甚至没有删除反斜杠。
【解决方案3】:

由于replaceAll 使用正则表达式,您需要转义所有相关字符({}\),像这样

"something{\\'\\i}".replaceAll("\\{\\\\'\\\\i\\}", "i");

\\\\ 是因为您首先在 Java 字符串中转义 \,然后在正则表达式中转义以匹配文字 \

【讨论】:

    【解决方案4】:

    您应该简单地使用 replace 函数而不是 replaceAll,因为最后一个需要正则表达式作为参数,例如:

    String word = "something{\\'\\i}".replace("{\\'\\i}", "'i' /* or i */");
    

    \ 必须在 java 中转义,这就是为什么我们有\\

    【讨论】:

      【解决方案5】:

      试试这个:

      final String a = "text{\\'\\i}";
      System.out.println(a);
      System.out.println(a.replace("{\\'\\i}", "i"));
      

      【讨论】:

        【解决方案6】:

        我认为你必须使用

        String word = "yourtexthere"
        String newWord = word.replaceAll("{\'\i}", "i");
        

        【讨论】:

        • 不知道你的意思^^。使用 word.replaceAll(%WHATYOUWANTTOREPLCE%, %WHATITSHOULDBE%)。如果你想要所有的 "{" 替换使用:例如 word.replaceAll("{", "i")。
        猜你喜欢
        • 1970-01-01
        • 2015-07-30
        • 2020-05-21
        • 1970-01-01
        • 1970-01-01
        • 2015-04-16
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        相关资源
        最近更新 更多