Regex 将组替换为空格

Regex 将组替换为空格,regex,Regex,我需要把绳子的一部分藏起来。在某个结束部分之前隐藏所有内容 使用regexp很容易实现,如下所示: replace("123-134-04", ".(?=.*-)", " ") 如果字符串的未来部分包含-,则替换任何符号。 结果是: " -04" 保持空间是很重要的 但是,我不能使用“向前看”或“向后看”。 我可以在结束部分之前捕获组,但如何替换此组以获得正确数量的空格? 或者用正则表达式解决这个问题的其他方法 提前登记 如果要替换的字符数相差不大,并且您有办法匹配要保留的零件,则

我需要把绳子的一部分藏起来。在某个结束部分之前隐藏所有内容

使用regexp很容易实现,如下所示:

replace("123-134-04", ".(?=.*-)", " ")
如果字符串的未来部分包含-,则替换任何符号。 结果是: " -04" 保持空间是很重要的

但是,我不能使用“向前看”或“向后看”。 我可以在结束部分之前捕获组,但如何替换此组以获得正确数量的空格? 或者用正则表达式解决这个问题的其他方法


提前登记

如果要替换的字符数相差不大,并且您有办法匹配要保留的零件,则可以执行一系列搜索和替换:

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

在待保留部分开始的位置拆分字符串, 运行replace,所有这些都应变为空白,、在第一部分,以及 再次加入他们。
您在这方面使用什么语言/工具,为什么不能使用lookahead?XSLT2.0和Saxon实现。是的,我可以编写帮助器模板或函数,但优先使用正则表达式。xpath规范在正则表达式中不包含前瞻性,这确实不起作用=这在不支持前瞻性断言的正则表达式引擎的单个正则表达式操作中是不可能的。