繁体   English   中英

行中的记事本++搜索组合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM