我有很多像以下几行:
55, cpp: 1e+06,1e+06, c:1e+06,1e+06, ...
56, cpp: 0.2342,0.2342, c:1e+06,1e+06, ...
57, cpp: 1e+06,1e+06, c:1e+06,1e+06, ...
58, cpp: 1e+06,0.2342, c:1e+06,1e+06, ...
59, cpp: 3.453,3.453, c:3.453,3.453, ...
我想过滤那些包含c:1e+06,1e+06
但不包含cpp: 1e+06,1e+06
的行
在示例中
56, cpp: 0.2342,0.2342, c:1e+06,1e+06, ...
58, cpp: 1e+06,0.2342, c:1e+06,1e+06, ...
我试过像^\d+, cpp: (?!1e\+06,1e\+06), c:1e\+06,1e\+06
这样的东西,但我对前瞻性的东西并不是很熟悉。
提前谢谢
答案 0 :(得分:1)
您可以尝试使用负前瞻的下面的正则表达式。
^(?:(?!cpp:\s*1e\+06,1e\+06).)*c:1e\+06,1e\+06.*$
OR
^\d+, (?:(?!cpp:\s*1e\+06,1e\+06).)*c:1e\+06,1e\+06.*$
或强>
^(?:(?!cpp:\s*1e\+06,1e\+06).)*c:1e\+06,1e\+06(?:(?!cpp:\s*1e\+06,1e\+06).)*$