我有一个文本,如下所示:
“head1>data1,data2,data3|head2>data1,data2,data3|head3>data3,data4,data5**
现在我想用 "|"
替换 ">data1..|"
我正在使用这个:".replace(/>\S+\||>\S+$/g,"|");"
但这没有帮助,因为它为我提供了如下数据:
“head1|head3|”
而不是“head1|head2|head3|”
我找不到正确的方法。
最佳答案
你可以使用
>\S+?(?:\||$)
请参阅regex demo
重点是让 \S+
变得懒惰,并缩短我们可以使用的模式,将 >\S+?
放在交替组之前。
图案详细信息:
>\S+?
- 文字>
后跟 1+ 个非空白符号,但尽可能少到(?:\||$)
- 文字|
或字符串结尾。
关于javascript正则表达式忽略文本之间的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352712/