Эквивалент подстановочного знака в находке для партии?

360
Mark Deven

Я почти уверен, что это дубликат, но я не смог найти его после долгих поисков, так что прости меня.
Я ищу способ иметь эквивалент подстановочного знака в команде поиска. Например, если я хочу найти в файле строку с надписью 09/(some unknown string here)/2018Как мне поступить? Я тоже открыт для использования findstrкоманды.

0
Вы пробовали фактические символы подстановки (% *)? Máté Juhász 6 лет назад 0
Да, он просто искал их. Я не пробовал с findstr, хотя, и это тоже нужно время Mark Deven 6 лет назад 0

1 ответ на вопрос

1
Ben N

findstrподдерживает некоторые простые регулярные выражения - см. нижнюю часть вывода findstr /?. Чтобы соответствовать любой серии символов, используйте .*. Точка соответствует любому отдельному символу, а звездочка позволяет сопоставить предыдущий символ (в данном случае любой символ) любое количество раз. Так что это будет найти все строки, содержащие 09/и /2018с какими - либо символами между ними:

findstr "09/.*/2018" MYFILE.TXT 

Если вы хотите сопоставлять строки только с неизвестной строкой длиной в два символа (поскольку строка поиска выглядит как дата), просто используйте два односимвольных символа подстановки:

findstr "09/../2018" MYFILE.TXT 
Что бы это ни стоило, я искал Super User перед публикацией этого ответа и также не смог найти прямой ответ для вас. Ben N 6 лет назад 1
На самом деле это не работает, кажется, работает без примера `. *`: Findstr "09 / / 2018" `... Я вообще не понимаю findstr: D Mark Deven 6 лет назад 0
@MarkDodsons Это интересно; метод `. *`, кажется, работает для меня. Могу ли я увидеть пример строки, которая не найдена, когда она должна быть? Ben N 6 лет назад 0
Я понял, это не работает с / C: это была моя проблема Mark Deven 6 лет назад 0
@MarkDodsons - он работает с `/ c: regexSearch`, если вы также используете опцию` / r`. `/ c:` по умолчанию выполняет литеральный поиск, но может быть переопределено с помощью `/ r`. dbenham 6 лет назад 0

Похожие вопросы