我有一个文本如下:

"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 - javascript正则表达式忽略文本之间的条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38352712/

10-09 18:21