Board logo

标题: findstr 正则式中如何表达 - [打印本页]

作者: rs369007     时间: 2010-5-1 21:07    标题: findstr 正则式中如何表达 -
set mac=00-19-21-9A-B8-1F
echo !mac! | findstr 这里如何写(要求能够判断mac是由0-9和A-F构成)

作者: freeants001     时间: 2010-5-1 21:27
[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]

作者: rs369007     时间: 2010-5-1 21:35
行了,先谢谢了。

不过感觉挺长的,可不可以再精炼点

作者: freeants001     时间: 2010-5-1 22:20
Originally posted by rs369007 at 2010-5-1 21:35:
行了,先谢谢了。

不过感觉挺长的,可不可以再精炼点


findstr 正则支持比较弱,要匹配好这么长是没办法的事;)

作者: gool123456     时间: 2010-5-2 00:12
再长的可以试试用for:
@set "mac=00-19-21-9A-B8-1F"
@set "mac1=-"
@set mac0=%mac:-= %
@for %%i in (%mac0%) do (call set "mac_=%%mac_%%%mac1%")
@echo %mac% | findstr %mac_:~1%
@pause


Last edited by gool123456 on 2010-5-2 at 00:37 ]

作者: Hanyeguxing     时间: 2010-5-2 05:03
@echo off
set mac=00-19-21-9A-B8-1F
set "a="
set "a=%a%-%a%-%a%-%a%-%a%-%a%"
echo.%mac%|findstr /i %a% >nul 2>nul&&echo.符合||echo.不符
pause