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

findText using regex for placeholders

我正在尝试浏览文档并找到所有占位符以将其替换为文本。

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

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

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

但它 returns 无效。如果我将正则表达式更改为 '{Name_+' 它 returns rangeElement 但这不是我需要的。尝试使用 * 代替 + 和 } 或 \} 代替 } 的组合,但我仍然无法使其工作...我需要获取 {Name_whatever}

之后的任何文本

谢谢!

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

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

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

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

\w 表示 "any word character, i.e. a-z, A-Z, 0-9 or '_'"。如果这对于您的用例来说太模糊了,例如你不希望模式匹配数字或下划线,你可以使用像这样的正则表达式:\{Name_[a-zA-Z]+\}。可视化:http://regexper.com/#{Name_[a-zA-Z]%2B}