如何在具有匹配子字符串的Windows中使用findstr返回字符串

时间:2018-11-08 00:17:56

标签: regex findstr

我在一个文件中有一个字符串,

async.AsyncTranslationThread - processPart: Finished Processing job number: J215577 partID: 151269

还有很多。

我只想返回包含子字符串已完成处理作业编号

的行

我用

这样的正则表达式编写了一个findstr命令
findstr /R "^.*Finished\sProcessing\sjob\snumber.*$" filename

我没有得到任何回报,正则表达式中要获取包含子字符串的字符串会有什么变化?

1 个答案:

答案 0 :(得分:2)

如果您查看the documentation,则findstr不支持您正在使用的大多数传统正则表达式功能,例如\s。它甚至不支持+量词!

  

下表列出了findstr接受的元字符。

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

您可以轻松摆脱它,即使有多个空格或制表符,它仍然会接受它:

findstr /c:"Finished Processing job number" filename

此外,默认情况下它似乎也不区分大小写