我正在使用 Notepad++,我正在尝试找到一种可以在同一行上搜索多个值的方法。正则表达式搜索目前对我不起作用,因为我可能不知道值的顺序。
例如,我想搜索一行具有三个特定值的代码。在正则表达式搜索中使用.*
不起作用,因为您必须知道值的顺序。我是否可以在不知道值顺序的情况下搜索这些行?
在每一行上,我可能都有一个交易日志,其中包含 30 个不同的标签。我想搜索35=D, EUR/USD, 150=8
. 我只想搜索所有三个值都存在的条目。
我遇到的问题是无法保证这些标签的顺序,因此我在下面使用的正则表达式搜索并不总能找到我需要的每个条目。
35=D.*EUR/USD.*150=8
使用lookahead更有效并且可以处理任意数量的交替而不增加复杂性:
^(?=.*\b35=D\b)(?=.*\bEUR/USD\b)(?=.*\b150=8\b).+$
.
匹配换行符”解释:
屏幕截图:
要仅匹配所有三个字符串都存在的那些行,您可以使用替代
|
运算符并将(...)
您的模式分组以为所有可能的排列构建一个正则表达式:添加了换行符的可读版本:
这将匹配所有存在
35=D
,EUR/USD
和150=8
(以及中间可能的文本)组合的行。在此示例文本中,只有最后三行具有匹配项(按钮“在当前文档中查找全部”):