【问题标题】:Java Replace Regex - replace consecutive tabsJava Replace Regex - 替换连续的制表符
【发布时间】:2014-08-07 09:01:28
【问题描述】:
"aaaa    bbbb        dddd        ffff        ".replace("\\t\\t", "\\tx\\t");

我想在两个连续的标签之间插入一个“x”。 我想我弄错了 Java 正则表达式模式。 谁能告诉我怎么了?
输出应该是:

"aaaa    bbbb    x    dddd    x    ffff    x    "

【问题讨论】:

  • replace 方法不适用于正则表达式。此外,您不需要转义转义字符。试试.replace("\t\t", "\tx\t")
  • 成功了!发表你的答案。
  • 有人已经这样做了,接受@user3218114的回答:)

标签: java regex replace


【解决方案1】:
s = s.replaceAll("\t(?=\t)", "\tx");

它需要一个正则表达式 (replaceAll/replaceFirst),而 replace 不需要,因为对于三个标签,它已经跳过了两个标签,因此没有两个“x”。

以上是前瞻。

两个反斜杠用于正则表达式转义,以表示反斜杠本身。字符串文字中的单个反斜杠转义,\u0061(小写字母'a')可以放置在任何地方,如public cl\u0061ss C

【讨论】:

    【解决方案2】:

    示例字符串不包含任何制表符。它们只是空间。在 Java 中选项卡由字符串中的\t 表示。

    System.out.println("aaaa\tbbbb\t\tdddd\t\tffff\t\t".replace("\t\t", "\tx\t"));
    

    输出:

    aaaa    bbbb    x   dddd    x   ffff    x
    

    通常一个制表符包含四个空格。你可以检查空格。

    【讨论】:

      猜你喜欢
      • 2015-09-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      相关资源
      最近更新 更多