如何批量比较两个字符串并确定变量是否为字母

如何批量比较两个字符串并确定变量是否为字母

我有这个代码

for /l %%a in (0, 1, 25) do (
if /i !TextAlphabet!==!Alphabet[%%a]! (
set AlphabetNumber=%%a
)
)

!Alphabet[]!是一个包含字母的数组。

我尝试回显!TextAlphabet!!Alphabet[%%a]!,当它们相同时,%AlphabetNumber%仍然是我在循环之前设置的值。

我尝试检查变量中的空格,但没有找到。

我还尝试在“”标签中添加变量。

答案1

如果您想检查一个变量是否只包含字母,您可以使用findstr,如下所示:

set var=Abc
echo %var%|findstr "^[A-Za-z]*$" >nul
if %errorlevel% == 0 (echo Variable is alphabetical)

怎么运行的

变量被回显,然后管道findstr命令,它将使用正则表达式匹配字母字符:

  • ^匹配行首;
  • [A-Za-z]定义了一个字符类匹配从 A 到 Z 的任意字符,包括大写和小写;
  • *重复前一类的零次或多次出现;
  • $匹配行尾。

如果匹配,则将变量设置为,否则。%errorlevel%输出将重定向到,因此被忽略。01findstrnul

参考

相关内容