@echo off
SET /p var=Enter:
echo %var% | findstr /r "^[a-z]{2,3}$">nul 2>&1
if errorlevel 1 (echo does not contain) else (echo contains)
pause
我正在尝试验证应包含2个或3个字母的输入。但是我尝试了所有可能的答案,它仅运行
if error level 1 (echo does not contain)
。有谁可以帮助我吗。非常感谢。
最佳答案
findstr
没有完整的REGEX支持。特别是没有{Count}
。您必须使用一种解决方法:
echo %var%|findstr /r "^[a-z][a-z]$ ^[a-z][a-z][a-z]$"
搜索
^[a-z][a-z]$
或^[a-z][a-z][a-z]$
(注意:
%var%
和|
之间没有空格-这将是字符串的一部分)
关于regex - 正则表达式以匹配批处理脚本中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524390/