当我的正则表达式需要一个空格时,如何使用findstr

Cra*_*aig 3 svn batch-file

我正在尝试编写一个findstr使用subversion查找本地和远程修改文件的正则表达式.鉴于下面的示例输出,我想匹配那些以'M'作为第一个或第二个字符的行.还会有其他人,但这是我的出发点.

C:\Documents and Settings\user\Desktop\code>svn status --show-updates .
X                    Core
        *     4069   D3_Version.m
Status against revision:   4184

Performing status on external item at 'Core'
M             4184   Core\IE_Unexport_Signals.m
X                    Core\2010
 M            4184   Core\images
 M            4184   Core
Status against revision:   4184

Performing status on external item at 'Core\2010'
Status against revision:   4184
Run Code Online (Sandbox Code Playgroud)

我的正则表达式如下:svn status --show-updates . |findstr "^[M]"它给出:M 4184 IECore\IE_Unexport_Signals.m

这只会在第一列中选​​择M. 修改为拾取第二列导致无输出:svn status --show-updates . |findstr "^[ M][ M]" 这似乎是由于字符类中的空格.阅读我应该/C:用来将空间解释为文字的文档,但这会将所有字符作为文字,因此正则表达式将不起作用.用"\"转义空间也行不通.

如何匹配那些以'M'作为第一个或第二个字符的行?

sak*_*kra 5

以下命令似乎可以解决问题:

svn status --show-updates . |findstr /r "^M ^.M"
Run Code Online (Sandbox Code Playgroud)

它使用两个由空格分隔的正则表达式.