首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Script (JS) Regex -在匹配位置添加附加字符串

Google Script (JS) Regex -在匹配位置添加附加字符串
EN

Stack Overflow用户
提问于 2022-11-22 16:39:44
回答 1查看 37关注 0票数 0

我正在尝试替换一条字符串,比如:

1.经理22 C.,选项C.2. 2.Employee 455 with (.)3.产品

使用

  1. 经理22溜溜球与选项C。
  2. 455名雇员
  3. 产品

我试过这样做:

代码语言:javascript
运行
复制
function enterNewLineForAnswers(){


 var body = DocumentApp.getActiveDocument()
      .getBody();

body.replaceText("[0-9]{1,2}[/.]{1}","\n" + '$&')
}

但它给了我转义的“$&”字符,而不是regex找到的数字。你能帮我找另一条路吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 02:24:19

在您的脚本和情况下,我认为不能使用body.replaceText("[0-9]{1,2}[/.]{1}","\n" + '$&')。这一点已在评论中讨论过。因此,为了实现您的目标,下面的示例脚本如何?

示例脚本:

代码语言:javascript
运行
复制
function enterNewLineForAnswers() {
  var body = DocumentApp.getActiveDocument().getBody();
  var search = "([0-9]{1,2}[/.]{1})";
  var s = body.findText(search);
  var values = [];
  while (s) {
    var text = s.getElement().asText();
    var r = new RegExp(search, "g");
    var k = `{{sample${values.length}}}`;
    values.push([k, text.getText().replace(r, "\n$1")]);
    text.setText(k);
    s = body.findText(search, s);
  }
  if (values.length == 0) return;
  values.forEach(e => body.replaceText(...e));
}
  • 在这个示例脚本中,首先搜索像1.Manager 22yo with option C. 2.Employee 455eur (...) 3.Product这样的值,并使用Javascript的replace和regex创建替换文本。文本被替换了。我以为通过这个流程,你的目标就实现了。

测试:

当使用此脚本时,将获得以下结果。

发自:

代码语言:javascript
运行
复制
1.Manager 22yo with option C. 2.Employee 455eur (...) 3.Product

至:

代码语言:javascript
运行
复制
1.Manager 22yo with option C. 
2.Employee 455eur (...) 
3.Product

参考文献:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74536150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档