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}
我正在尝试浏览文档并找到所有占位符以将其替换为文本。
例如,文档可能包含 {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}