我有这种格式的大量数据。
DATA1|DATA2|00/00|JOHN|SMITH|
如何使用正则表达式修改它,以便我可以替换第4个“|”有空格所以它会像这样输出吗?
DATA1|DATA2|00/00|JOHN SMITH|
非常感谢
答案 0 :(得分:1)
查找内容:
^((?:[^|]*\|){3}[^|]*)\|
替换为:
\1
请注意,您需要在\1
或强>
查找内容:
^(?:[^|]*\|){3}[^|]*\K\|
替换为:
replace with a space.
答案 1 :(得分:0)
您可以将(([^\|]+\|[^\|]+\|[^\|]+\|[^\|]+)\|)
替换为\2
。以下是正则表达式的作用:
(
第一个捕获组的开头
(
第二个捕获组的开始
以下部分重复三次
[^\|]
匹配任何不是|
字符的字符
+
确保上述部分([^\|]
匹配一次或多次)
\|
字面上匹配|
字符
以上部分重复三次
[^\|]
匹配任何不是|
字符的字符
+
确保上述部分([^\|]
匹配一次或多次)
)
第二个捕获组结束
\|
字面上匹配|
字符
)
结束了第一个捕获组。
接下来,您可以将其替换为\2
(末尾有空格)。 Here's a live demo。确保将g (global)
修饰符与正则表达式一起使用(通常在表达式的末尾),以确保它不会在第一次查找时返回。