1

我在网上某个地方找到了这个正则表达式,它在我的文件中找到了可能呈现给用户进行本地化清理的字符串。但是,我有一个新任务来查找两个单词的特定实例,我认为我可以使用相同的正则表达式。我尝试了几种组合,但我在正则表达式方面做得还不够好。

当前用于查找字符串的正则表达式:

(?<=text=|label=|prompt=|toolTip=|title=|icon=|String=|Error=|Separator=|Symbol=)(("(?:\.|(\\\")|[^\""\n])*")|('(?:\.|(\\\')|[^\''\n])*'))

但现在我希望它也能捕捉到:目录库存是否存在于引号之间的任何位置。

任何帮助,将不胜感激。

4

1 回答 1

2

好的,这应该可以,我相信:

(?<=text=|label=|prompt=|toolTip=|title=|icon=|String=|Error=|Separator=|Symbol=)((?:"(?:\.|(\\\")|[^\""\n])*\b(?:catalog|in stock)\b(?:\.|(\\\")|[^\""\n])*")|(?:'(?:\.|(\\\')|[^\''\n])*\b(?:catalog|in stock)\b(?:\.|(\\\')|[^\''\n])*'))

我所做的只是\b(?:catalog|in stock)\b在报价部分添加。例如,对于双引号部分,它曾经是这样的:

"(?:\.|(\\\")|[^\""\n])*"

即任意数量的非引号(除非转义),双引号之间的非返回字符。

现在是这样的:

"(?:\.|(\\\")|[^\""\n])*\b(?:catalog|in stock)\b(?:\.|(\\\")|[^\""\n])*"

这是一个双引号,任意数量的上述合法字符,“目录”或“库存”,任意数量的更多合法字符,以及一个引号。

于 2012-08-21T21:15:17.307 回答