javascript正则表达式忽略文本之间的条件

时间:2016-07-13 13:09:59

标签: javascript regex str-replace

我的文字如下:

[emoji]

现在我想用"head1>data1,data2,data3|head2>data1,data2,data3|head3>data3,data4,data5**

替换">data1..|"

我使用的是:"|"

但这没有帮助,因为它给我的数据如下:

".replace(/>\S+\||>\S+$/g,"|");"代替"head1|head3|"

我无法找到合适的方法。

3 个答案:

答案 0 :(得分:2)

您可以使用

>\S+?(?:\||$)

请参阅regex demo

重点是让\S+懒惰,并缩短我们可以使用的模式,将>\S+?放在交替组之前。

模式详情

  • >\S+? - 一个文字>后面跟着1个非空格符号,但最少可达
  • (?:\||$) - 文字|或字符串结尾。

答案 1 :(得分:0)

一个简单的方法:),正在尝试这样



var str = "head1>data1,data2,data3|head2>data1,data2,data3|head3>data3,data4,data5";

console.log(str.replace(/>[a-z1-9,]+/g,"|").replace(/\|+/g, "|"));




>[a-z1-9,]+将选择>data1,data2,data3

然后用单|

替换多个|

:)

答案 2 :(得分:0)

您可以使用:

  

> [α-Z0-9,] + \ |

然后每次用单|替换它。