【发布时间】:2020-12-26 11:36:21
【问题描述】:
我正在尝试将值 ABC-2131 和 ABC-345,DEF-3534 和 EFG-456,FGF-4546,HJI-23423 与批处理脚本中的 RegEx 进行匹配
^([aA-zZ]*-[0-9]*)([,]*[aA-zZ]*-[0-9]*)*
批处理脚本中的正则表达式子模式没有正确匹配
例如在子模式分组中,^([aA-zZ]*-[0-9]*)仅对(ABC-234)有效,对ABC-234无效
代码如下:
echo(%LogMsg%|findstr /r /c:"^([aA-zZ]*-[0-9]*)([,]*[aA-zZ]*-[0-9]*)*" >nul && (
echo FOUND
) || (
(echo NOT FOUND )
)
【问题讨论】:
-
你可以试试:
^[a-zA-Z]+-[0-9]+(?:,[a-zA-Z]+-[0-9]+)*$ -
没有。我只需要匹配 ABC-2131 或 ABC-345,DEF-3534
-
是的,我试过了。这对 ABC-342 不起作用
-
这是不正确的。看这个演示:regex101.com/r/JhHvxR/1 它匹配你所有的输入字符串。
-
可能不支持
?:,试试^[a-zA-Z]+-[0-9]+(,[a-zA-Z]+-[0-9]+)*$
标签: regex batch-file command-prompt regex-group