正则表达式替换重复模式

视觉保罗

如何在下面使用正则表达式替换此字符串

var str="(adj., adv., part.) with or caution. (n.) difficult be etc., And. extreme care.";

str = str.replace(/(\w+\.)/, "*$1*");

(*adj.*, *adv.*, *part.*) with or caution. (*n.*) difficult be etc., And. extreme care.

\ w +。始终在()中,并且当多个时,可以用逗号和空格分隔

维克多·史翠比维

您可以匹配具有您需要匹配的格式的字符串,然后将匹配项传递给回调以\w+\.用星号包装部分:

str = str.replace(/\(\w+\.(?:\s*,\s*\w+\.)*\)/g, function (m) { 
   return m.replace(/\w+\./g, "*$&*"); 
});

JS演示:

var str="(adj., adv., part.) with or caution. (n.) difficult be etc., And. extreme care.";
console.log(str.replace(/\(\w+\.(?:\s*,\s*\w+\.)*\)/g, function (m) { 
  return m.replace(/\w+\./g, "*$&*"); 
}));

正则表达式是

/\(\w+\.(?:\s*,\s*\w+\.)*\)/g

请参阅regex演示注意g修饰符,它使引擎搜索字符串中的所有匹配项。

细节

  • \(-一个(字符
  • \w+\. -1个以上的字字符和一个点
  • (?:\s*,\s*\w+\.)* -0个或多个序列
    • \s*,\s*-,包含0+空格的
    • \w+\. -1个以上的字字符和一个点
  • \)-一个)字符

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章