我在网上发现了这个正则表达式,它在我的文件中找到了可能呈现给用户进行本地化清理的字符串。但是,我有一个新任务来查找两个单词的特定实例,我认为我可以使用相同的正则表达式。我已经尝试了几种组合,但是我在正则表达式方面做得还不够好。
查找字符串的当前正则表达式:
(?<=text=|label=|prompt=|toolTip=|title=|icon=|String=|Error=|Separator=|Symbol=)(("(?:\.|(\\\")|[^\""\n])*")|('(?:\.|(\\\')|[^\''\n])*'))
但是现在我想要它还可以捕获: 目录 或 库存 之间的任何地方报价。
任何帮助都将不胜感激。
答案 0 :(得分: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])*"
这是双引号,上述任意数量的合法字符,“目录”或“有货”,任意数量的合法字符和引用。