我正在尝试替换一条字符串,比如:
1.经理22 C.,选项C.2. 2.Employee 455 with (.)3.产品
使用
我试过这样做:
function enterNewLineForAnswers(){
var body = DocumentApp.getActiveDocument()
.getBody();
body.replaceText("[0-9]{1,2}[/.]{1}","\n" + '$&')
}
但它给了我转义的“$&”字符,而不是regex找到的数字。你能帮我找另一条路吗?谢谢!
发布于 2022-11-23 02:24:19
在您的脚本和情况下,我认为不能使用body.replaceText("[0-9]{1,2}[/.]{1}","\n" + '$&')
。这一点已在评论中讨论过。因此,为了实现您的目标,下面的示例脚本如何?
示例脚本:
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创建替换文本。文本被替换了。我以为通过这个流程,你的目标就实现了。测试:
当使用此脚本时,将获得以下结果。
发自:
1.Manager 22yo with option C. 2.Employee 455eur (...) 3.Product
至:
1.Manager 22yo with option C.
2.Employee 455eur (...)
3.Product
参考文献:
https://stackoverflow.com/questions/74536150
复制相似问题