用空格替换组

时间:2014-11-09 16:58:30

标签: regex

我需要隐藏部分字符串。在某个结尾部分之前隐藏所有内容。

像这样的regexp很容易实现:

replace("123-134-04", ".(?=.*-)", " ")

如果字符串的未来部分包含" - "则替换任何符号。 结果是:

"       -04"
保留空格很重要。

但是,我无法使用前瞻或后视。 我可以在结束部分之前捕获该组,但是如何替换正确数量的空格? 或者可能还有其他一些方法可以用正则表达式解决这个问题吗?

提前Tnanks!

1 个答案:

答案 0 :(得分:0)

如果要替换的字符数没有太大差异,并且您有办法匹配要保留的部分,则可以进行一系列搜索和替换:

replace("12-14-04",             "^.{5}(-[^-]+)$",  "     \1")
replace("123-134-04",           "^.{7}(-[^-]+)$",  "       \1")
replace("adfasd-adf-da7474-04", "^.{17}(-[^-]+)$", "                 \1")

或者你这样做:

  • 将字符串拆分到要保留部分的位置,
  • 在第一部分上运行replace("ALL OF THIS SHOULD BECOME BLANKS", ".", " "),然后
  • 再次加入他们。