2015-09-03 7 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

 Смежные вопросы

  • Нет связанных вопросов^_^