是否可以使用Windows命令行中的findstr在字母之间连续搜索2个或更多空格?

例子:

Hello world!  - nomatch wanted
Hello  world! - match wanted

什么是正则表达式语法?

另外,能否请您帮助我理解以下命令行 session ([ ][ ]*之间的区别;第二个命令什么都不返回):
c:\1>findstr -i -r  "view[ ]*data.sub" "view data sub.acf"
View Data Sub.ACF:            "].DATE_STAMP)>=[Forms]![MainNav]![View Data Sub]"
View Data Sub.ACF:            "].DATE_STAMP)<[Forms]![MainNav]![View Data Sub]"

c:\1>findstr -i -r  "view[ ]data.sub" "view data sub.acf"

c:\1>

PS:只是好奇;我知道awk,perl,C#等,但是findstr呢?

最佳答案

如果只想查找两个连续的空格:

findstr /C:"  " input.txt

或在不区分大小写的正则表达式中:
findstr /R /I /C:"lo  wo" input.txt

重要的一点是模式前面的/C:。这告诉findstr将模式视为文字字符串。没有它,findstr会将模式拆分为多个空格。根据我的经验,这永远不是您想要的。

更新

在字母之间做两个或多个空格:
findstr /R /I /C:"[a-z]   *[a-z]" input.txt

请注意,模式中有三个空格。这与一个字母,两个空格,零个或多个空格(即两个或多个空格)和另一个字母匹配。

关于windows - findstr Windows命令正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10485650/

10-10 06:11