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

标签 javascript regex str-replace

我有一个文本,如下所示:

“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/

相关文章:

javascript - 这个 JQuery 有什么问题?

javascript - "function*()"在nodejs中是什么意思?

javascript - 正则表达式匹配金额中的小数

javascript - 将规则应用于文本,但不在 div 或元素内

r - 如何在 R 中查找和替换具有舍入值的文本中的数字?

php - 如何从字符串中删除 'em' 破折号?

javascript - Kendo UI 可见绑定(bind)不起作用

javascript - 基于路由参数的服务器端渲染动态页面

Python 正则表达式不匹配 http ://

javascript - 正则表达式 - 至少 1 个数字、1 个字母、1 个特殊字符和至少 3 个字符