我正在尝试使用Windows命令提取子字符串。
我想要提取一个看起来像这样的数字: 1.2.3.4
或更精确地说是 [任意正整数.任意正整数.任意正整数.任意正整数]
。
我以为可以用正则表达式实现。
以下是代码:
set mystring="whatever 1.2.3.4 whatever talk to the hand"
echo %mystring% | findstr /r "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" >foundstring
echo %foundstring%
希望 "foundstring" 是 "1.2.3.4" 就好了。
似乎
findstr
只在找到符合正则表达式的匹配时返回整个字符串。更有趣的是,我构建的正则表达式似乎不被 findstr
所喜欢。这个可以工作 "[0-9].[0-9].[0-9].[0-9]" ,但它仍然返回整个字符串。
我在这里做错了什么? :)
/H
findstr
命令用于查找包含搜索模式的行,但它无法从这些行中提取出该模式。 - user330315