我想知道是否可以使用 findstr 在 CSV 中搜索与此正则表达式匹配的任何内容
^([BPXT][0-9]{6})|([a-zA-Z][a-zA-z][0-9][0-9](adm)?)$
我不知道您在谈论哪种语言,但是您的正则表达式存在一个明显的问题:^
and$
锚点要求它匹配整个字符串,并且您似乎计划匹配 CSV 文件中的各个条目。
因此,如果您的正则表达式引擎支持它们,您应该使用单词边界锚点:
\b(?:([BPXT][0-9]{6})|([a-zA-Z]{2}[0-9]{2}(adm)?))\b
我还在交替周围添加了另一个非捕获组。在您的正则表达式中,字符串开头和结尾的锚点将成为交替的一部分,这可能不是有意的。您是否真的需要所有其他括号取决于您要对匹配做什么。
不,它不能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
不能将其输出限制为匹配的表达式;它仅标识包含匹配项的行。
它完全不适合所描述的任务。