[英]Notepad++ search combination in lines
我正在寻找包含多行(记事本++)的txt文件中的特定组合。 我正在寻找的线的结构如下:
xxxxxx N N -1 -1 -1 N (end line)
因此,我首先有一个6个或更多字符的标识符,然后是6个数字(N),以制表符分隔。 N可以为值1、0或-1。 我正在寻找在位置3、4和5中包含“ -1”的行。其他位置可以采用3个值中的任何一个。 我已经在线搜索并应用了搜索,例如:
\t-?\t-?\t-1\t-1\t-1\t-?
\t?.\t?.\t-1\t-1\t-1\t?.
t?.\t?.\t-1\t-1\t-1\t?.\n
\t-1\t-1\t-1\t?.\n
但是,该行中的最后N个未考虑在内,因此,例如,如果其值为0,则不会选择该行。
编写此搜索的方式是什么? 我知道记事本++是用C ++编写的。
您可以尝试遵循这种模式吗:
^([a-zA-Z0-9]{6,})\s*(-1|0|1)\s*(-1|0|1)\s*((-1\s*?){3})\s*(-1|0|1)\s?
https://regex101.com/r/yM5xD3/2
^
:行的开头。
([a-zA-Z0-9]{6,})
:任何字符六次或以上。
\\s*
:空格/制表符/换行零次或多次。
(-1|0|1)
:这些数字之一。
\\s*
:...
(-1|0|1)
:这些数字之一。
((-1\\s*?){3})
:-1一次,然后按space / tab / newLine零次或更多次。 (“?”表示正则表达式将尝试获取尽可能少的\\ s)
\\s*
:..
(-1|0|1)
:...
最后一个\\s?
:寻找零个或一个空格/制表符/ newLineCharacter
您可以尝试以下正则表达式:
^[a-zA-Z0-9]+\t(-1|0|1)\t(-1|0|1)\t[\-][1]\t[\-][1]\t[\-][1]\t(-1|0|1)$
我尝试了以下示例,它对我有用。
xxxxxx 1 1 -1 -1 -1 1
xxxxxx 0 1 -1 -1 -1 0
test12 -1 1 -1 1 -1 0
xxxxxx 1 1 -1 -1 -1 0
test13 0 1 -1 -1 1 -1
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.