在Notepad ++中查找包含123985和Positive_Adjustment的行

时间:2015-02-17 15:22:27

标签: regex notepad++

我试图在文件中找到特定数字和特定字符串的行,并且在它们之间有一组字符(换句话说,它们各自出现在行中的任何地方,而不是彼此相邻*)。 / 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|||||||||||||||||||||||||

2 个答案:

答案 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.*