簡體   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