我试图在文件中找到特定数字和特定字符串的行,并且在它们之间有一组字符(换句话说,它们各自出现在行中的任何地方,而不是彼此相邻*)。 / p>
*编辑:为了澄清,我只是声明两个字符串值不会彼此相邻。我并不是说这是正则表达式的要求。如果找到123985Positive_Adjustment就可以了。它不会因为没有这样的线条。如果我的问题具有误导性,请道歉。
我在搜索谷歌搜索此问题后尝试了很多正则表达式,但没有一个完全符合我的需要。我尝试过的一个例子是......
123985.*Positive_Adjustment
(搜索那个数字,然后是一个arbritrary数量的字符,然后是那个字符串)
任何人都可以建议使用正确的正则表达式,这将在Notepad ++中实现这一点(在撰写本文时是最新的)
有效匹配的一个例子是......
15/02/12|abc|123985|G1|6|12:04:29|19088829.96|Positive_Adjustment||||299243.70|||0.00|299243.70|15/02/12|||10.9.210.0||5001|0.0000|||||||||||||||||||||||||
答案 0 :(得分:2)
换句话说,它们每个都出现在行中的任何地方,而不是彼此相邻
^.*123985.+Positive_Adjustment.*$
这个简单的正则表达式应该为你做。
答案 1 :(得分:1)
您可以描述不是您搜索的数字或单词的部分。结果有点长但有效(因为它很快就失败了):
^(?:[^1\n]+|1(?!23985))*+123985(?:[^P\n]+|P(?!ositive_Adjustment))++Positive_Adjustment.*
或更长且更快:
^[^1\n]*+(?:1(?!23985)[^1\n]*)*+123985(?>[^P\n]+|P(?!ositive_Adjustment)[^P\n]*)(?:P(?!ositive_Adjustment)[^P\n]*)*+Positive_Adjustment.*