2015-09-03 69 views
0

我test_file.txt不使用FINDSTR將無法正常工作

test 
test_1 

我使用FINDSTR尋找一個字符串

C:\Users\Rafael\Desktop>findstr /R /C:"test" test_file.txt 
test 
test_1 

如果我使用尋找一個字符串的文件時對正則表達式操作下劃線,它的工作

C:\Users\Rafael\Desktop>findstr /R /C:"test[_]" test_file.txt 
test_1 

但是,如果我找一個字符串不使用下劃線,我什麼也沒有。

C:\Users\Rafael\Desktop>findstr /R /C:"test[^_]" test_file.txt 

C:\Users\Rafael\Desktop> 

使用regex101.com:

Test working using regex101.com

爲什麼?有解決方案嗎?

+0

使用'\ B',而不是'[^ _]'..也許'' –

+0

同樣的事情(_?!)。空白迴應。 – rcorreia

+2

請注意,findstr中的正則表達式支持既有限又非常過時。不要期望它支持regex101.com上的所有功能。 –

回答

3

test[^_]是一個錯誤的正則表達式趕上僅test因爲[^_]需求字符線,但有沒有:字符串結束之後test

單詞邊界特殊字符,應使用:

findstr /r /c:"\<test\>" inputfile.txt 
+0

哇!快速和好的一個。謝謝!!! – rcorreia