我在一个文件中有一个字符串,
async.AsyncTranslationThread - processPart: Finished Processing job number: J215577 partID: 151269
还有很多。
我只想返回包含子字符串已完成处理作业编号
的行我用
这样的正则表达式编写了一个findstr命令findstr /R "^.*Finished\sProcessing\sjob\snumber.*$" filename
我没有得到任何回报,正则表达式中要获取包含子字符串的字符串会有什么变化?
答案 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
此外,默认情况下它似乎也不区分大小写