regex如何删除特定单词后的逗号

regex how to remove commas after a specific word

本文关键字:单词 何删除 删除 regex      更新时间:2023-09-26

我目前正试图使用正则表达式删除特定单词"SUM('和最后一个'之前)"之后的任何逗号。换句话说,我想删除函数SUM()中所有的开始和结束逗号。我使用javascript函数replace在regex上执行此操作。

下面的例子说明了用regex:调用replace函数后我要做的事情

SUM(,,,,1,2,)  // result should be SUM(1,2)
SUM(,1,2,)    // result should be SUM(1,2)
SUM(,1,2,,,)  // result should be SUM(1,2)
SUM(,,,,1,34) // result should be SUM(1,34)
SUM(,,,,0,0,0) // result should be SUM(0,0,0)

目前我一直在尝试这个正则表达式:

(^SUM'()',|(',+)')$

但我只想在单词"SUM("后面和最后一个括号")"之前的逗号上匹配。有人能帮我吗?

使用此模式:

/(^SUM)'(,*(.*?),*')/gm

并将其替换为$1($2)

在线演示

用一个逗号替换多个逗号,然后修复开头和结尾:

str . 
  replace(/,+/g, ',') . 
  replace(/'(,/, '(') . 
  replace(/,')/, ')')

如果你不在乎删除项目之间的多个逗号,那么

str . replace(/'(,+/g, '(') . replace(/,+'(/, '(')

您可以将这些组合成一个regexp作为

var str = "SUM(,1,2,,,)";
var result = str.replace(/('(),+|,+('))|(,),*/g, '$1$2$3')
//                        ^^^^^^               MATCH (,,,
//                               ^^^^^^        MATCH ,,,)
//                                      ^^^    MATCH commas between items
                             
document.write(result);