正则表达式代码以在文本文件中搜索多行字符串

时间:2018-07-09 05:27:02

标签: regex notepad++

我正在尝试构建一个正则表达式,以使用Notepad ++在下面的多行文本中查找

(*ANYCRLF)(SPIDs at the head of blocking chains)\n(spid)\n.\n[1-9]

但是它只能工作到SPID。哪些表达式可帮助它在下一行数字(1-9)中找到20个-字符。文本显示不正确。

spid字是一个常量,区分大小写。只有数值会有所不同,但范围是1到9。

匹配文本:

SPIDs at the head of blocking chains
spid                
-(dash) 20 times
               13257

1 个答案:

答案 0 :(得分:1)

在正则表达式(*ANYCRLF)(SPIDs at the head of blocking chains)\n(spid)\n.\n[1-9]中,您要匹配\n.\n,它将匹配换行符,后跟任意字符和换行符。除了匹配任何字符,您还可以匹配破折号20次-{20}

您可以将最后一个\n更新为\s*,以匹配零次或多次空白字符,最后匹配一次或多次[1-9]+

(*ANYCRLF)(SPIDs at the head of blocking chains)\n(spid)\n-{20}\s+[1-9]+

或者您可以使用(*ANYCRLF)来代替\n\s

\s*(SPIDs at the head of blocking chains)\s*(spid)\s*-{20}\s*[1-9]+

您为()(SPIDs at the head of blocking chains)使用捕获组(spid),但是如果只想匹配值,则可以省略括号。