如何在 findstr 实用程序中使用单词边界正则表达式

How can I use a word boundary regex in the findstr utility

我正在搜索一个文件夹,寻找包含单词 car 的文件。这是我正在使用的数据示例,通过使用 findstr 实用程序 - findstr /s /i /n car *.*

获得

interview-290346:1:Drives a similar car to the description.

interview-29316965:3:time.) 'You're nothing but a pack of cards!'

interview-676473:7:The next witness was the Duchess's cook. She carried the pepper-box in

interview-3804339:1:Park's car is red, not blue, and the person on the camera is presumed to be male. Not considered a suspect.

我想查找包含单词 car 的文件,而不是包含子字符串 car 的单词。我尝试将 findstr 实用程序与正则表达式 car\b 一起使用,但我不知道如何正确地转义它。 None 以下 return 个任意结果:

findstr /s /i /n car\b *.*
findstr /s /i /n "car\b" *.*
findstr /s /i /n car\b *.*
findstr /s /i /n car\\b *.*
findstr /s /i /n "car\b" *.*
findstr /s /i /n "car\\b" *.*

转义正则表达式的正确方法是什么?为了在 findstr 中使用它,我还需要做些什么吗? (输入后我确实注意到正则表达式仍然会匹配单词末尾带有 car 子字符串的单词,但这没关系。我的问题不是关于使用什么正则表达式,而是如何将其转义为在 findstr 中使用。)

(如果有人对这个问题的上下文感兴趣,我正在研究 Command Line murder mystery。)

根据the documentation判断,findstr 不理解\b。您可以使用相反的 class 来代替,例如"car[^a-z]"(未经测试),尽管如果 "car" 是文件中的最后一个内容,那将不匹配。 (您可以使用不同的表达式调用 findstr 来捕获它们。)