используя findstr с регулярным выражением для поиска через CSV - PullRequest
0 голосов
/ 26 января 2011

Мне было интересно, можно ли использовать findstr для поиска в CSV чего-либо, соответствующего этому регулярному выражению

^([BPXT][0-9]{6})|([a-zA-Z][a-zA-z][0-9][0-9](adm)?)$

Ответы [ 2 ]

1 голос
/ 26 января 2011

Я не знаю, на каком языке вы говорите, но есть одна очевидная проблема с вашим регулярным выражением: якоря ^ и $ требуют, чтобы он соответствовал всей строке, и вы, кажется, планируете соответствующие отдельные записи в вашем файле CSV.

Следовательно, вы должны использовать привязки границ слов, если ваш движок регулярных выражений поддерживает их:

\b(?:([BPXT][0-9]{6})|([a-zA-Z]{2}[0-9]{2}(adm)?))\b

Я также добавил еще одну группу без захвата вокруг чередования. В вашем регулярном выражении якоря в начале и конце строки были бы частью чередования, которое, вероятно, не предназначено. Нужны ли вам все остальные скобки, зависит от того, что вы собираетесь делать со спичкой.

0 голосов
/ 02 февраля 2017

Нет, невозможно использовать findstr для поиска подходящих подстрок, особенно тех, которые соответствуют указанному вами сложному выражению.

findstr - это встроенная ОС Windows.

findstr /? показывает подмножество регулярных выражений, которое оно может использовать:

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurrences of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

Это означает, что большая часть вашего выражения находится за окном.

Кроме того, findstr не может ограничить вывод только соответствующим выражением; он идентифицирует только строки, содержащие совпадения.

Это совершенно не подходит для описанной задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...