【问题标题】:Regular expression removing only first instance [duplicate]正则表达式仅删除第一个实例[重复]
【发布时间】:2015-10-31 22:04:01
【问题描述】:

这是一段 Google Apps 脚本代码:

var re = /(<.*?>)+/;
var strip = str.replace(re, "");
Logger.log(strip);

为什么只剥离标签的第一个实例?

【问题讨论】:

  • 这是一个关于堆栈溢出的经常重复的问题,在所有情况下都很容易找到。知道 Google Apps 脚本是 JavaScript 将有助于找到所有这些以前的解决方案。其中之一是:
  • 虽然我承认可以在以下问题中找到我的答案的解决方案:How to replace multiple strings with the .replace() Method,但我认为我的问题更倾向于 Google 脚本。
  • 是和不是。 Google Apps 脚本大体上是 JavaScript 的运行时。 Google 特定部分位于引用 Google 服务的 API 中。正则表达式是在 JavaScript 功能中烘焙的。 Apps 脚本不会为该聚会带来任何东西。

标签: javascript regex google-apps-script


【解决方案1】:
var re = /(<.*?>)/g

结尾的g 是您需要设置的标志以替换所有匹配的实例。根据您传递的str 的内容,您可能希望尝试添加的另一个标志是m,这表示该模式应适用于多行,即

var re = /(<.*?>)/mg

【讨论】:

  • 谢谢!它适用于/g。我在哪里可以找到有关它的文档?因为我使用的那些正则表达式测试器,在没有/g 的情况下以我需要的方式工作。
  • 取决于这些解释器实现的好坏程度。 developer.mozilla.org/en/docs/Web/JavaScript/Reference/…
  • 最近,我对 RegEx101 非常满意。 Here is your RexExhere is version 2 添加了 Jonathon 的建议。
  • 我使用regexpal.com。它看起来有点 web1.0 但分组突出显示总是帮助我迭代地构建我的查询。特别是在处理条件前瞻等时。
猜你喜欢
  • 2021-12-11
  • 2019-12-21
  • 2019-12-13
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 2013-09-06
  • 2018-06-09
  • 2011-07-14
相关资源
最近更新 更多