0

当三行连续写入文件时,我需要返回所有出现的情况。我正在寻找以下内容:

FieldName=<some name>
Operator=<some operator>
Value=<some value>

示例文件内容

MatchAny=FALSE
FieldValue=TRUE
Operator=Is less than
TotalFields=1
[OutputTarget0SelField0]
FieldName=ORIG-DATE
Operator=Is greater than
Value=20000101
[OutputTarget1]

为此,我一直在尝试使用 Notepad++ Find in Files 功能,但我似乎无法获得正确的正则表达式。

这是我尝试过的(在这种情况下,我假设 FieldName= 之后的两行将始终是 Operator= 和 Value=)

在此处输入图像描述

Find what:(FieldName=|Operator=|Value)也很接近,但显然没有考虑到这些行需要连续(“FieldName =”后跟“Operator =”后跟“Value =”)并且也返回所有单次出现的事实。

4

1 回答 1

1

您可以使用^FieldName=[^\n\r]*[\n\r]+Operator=[^\n\r]*[\n\r]+Value=[^\n\r]*来匹配您的 3 行:

  • ^FieldName=[^\n\r]*[\n\r]+匹配一行的开头,后跟FieldName=任意数量的非换行符,然后是一个或多个换行符。当您使用 Windows 标记您的问题时,您可能可以替换[\n\r]+\r\n,这也可以防止空行跳入匹配项(目前这是可能的)
  • Operator=[^\n\r]*[\n\r]+Operator-Line 基本相同
  • Value=[^\n\r]*价值线再次相同,这次没有结束换行符

如评论中所述,这只会显示文件概述中查找的第一个匹配行,但您可以双击它,因此它会显示整个匹配项。

于 2016-03-16T16:18:08.497 回答