findText使用正则表达式作为占位符

时间:2015-01-10 11:24:50

标签: regex google-apps-script

我正在尝试浏览文档并找到所有占位符以用文本替换它们。

例如,文档可能包含{Name_dog},{Name_cat}等内容......

我在查找文本中使用正则表达式如下:

var regex = '\{Name_+\}';
var location =  part.findText(regex);

但它返回null。如果我将正则表达式更改为'{Name_ +'它返回rangeElement但它不是我需要的。尝试使用*代替+和}或\}而不是}的组合,但我仍然无法使其工作......我需要获得任何文字,然后{Name_whatever}

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用的正则表达式\{Name_+\},表示“{Name”,后跟1或更多“_”,后跟“}”,这不是您想要的!

正则表达式中的+符号表示“前面一个或多个模式”。

以下是您使用的正则表达式的可视化:http://regexper.com/#{Name_%2B}

你真正想说的是:\{Name_\w+\}。可视化:http://regexper.com/#{Name_\w%2B}

\w表示“任何单词字符,即a-z,A-Z,0-9或'_'”。如果这对您的用例来说太模糊,例如你不希望patern匹配数字或下划线,你可以使用像\{Name_[a-zA-Z]+\}这样的正则表达式。可视化:http://regexper.com/#{Name_[a-zA-Z]%2B}