Java替换正则表达式 - 替换连续的选项卡

时间:2014-08-07 09:01:29

标签: java regex replace

"aaaa    bbbb        dddd        ffff        ".replace("\\t\\t", "\\tx\\t");

我想两个连续标签之间插入' x' 。 我认为我的Java Regex模式错了。 有人能告诉我哪里错了?
输出应为:

"aaaa    bbbb    x    dddd    x    ffff    x    "

2 个答案:

答案 0 :(得分:3)

示例字符串不包含任何制表符。它们只是空间。在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

通常,标签包含四个空格。你可以查看空格。

答案 1 :(得分:3)

s = s.replaceAll("\t(?=\t)", "\tx");

它需要一个replace不是正则表达式(replaceAll / replaceFirst),因为对于三个选项卡,它已经跳过两个选项卡,因此没有两个' s。

以上是展望未来。

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