我正在尝试浏览文档并找到所有占位符以用文本替换它们。
例如,文档可能包含{Name_dog},{Name_cat}等内容......
我在查找文本中使用正则表达式如下:
var regex = '\{Name_+\}';
var location = part.findText(regex);
但它返回null。如果我将正则表达式更改为'{Name_ +'它返回rangeElement但它不是我需要的。尝试使用*代替+和}或\}而不是}的组合,但我仍然无法使其工作......我需要获得任何文字,然后{Name_whatever}
谢谢!
答案 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}