Board logo

标题: [文本处理] 求助批处理findstr命令文本匹配问题 [打印本页]

作者: jun.    时间: 2024-12-5 16:35     标题: 求助批处理findstr命令文本匹配问题

  1. echo "10__0__22000__613"|findstr /i /r /c:"[0-9]__[0-9]__[0-9]__[0-9]">nul&&(echo ok)||(echo no)
复制代码
各位大佬,这句代码错在哪了?如何匹配呢?
作者: idwma    时间: 2024-12-5 16:43

  1. echo "10__0__2__6"|findstr /i /r /c:"[0-9]__[0-9]__[0-9]__[0-9]">nul&&(echo ok)||(echo no)
复制代码

作者: jun.    时间: 2024-12-5 16:49

回复 2# idwma


    如何匹配10__0__22000__613呢
作者: 77七    时间: 2024-12-5 17:04

每个数字对应一个[0-9]
作者: jun.    时间: 2024-12-5 17:13

回复 4# 77七


    这就麻烦了
作者: 77七    时间: 2024-12-5 17:16

回复 5# jun.


   你具体匹配什么?[0-9]* 表示数字重复0次或以上,详细教程板块有教学帖子
作者: jun.    时间: 2024-12-5 17:33

回复  jun.


   你具体匹配什么?[0-9]* 表示数字重复0次或以上,详细教程板块有教学帖子
77七 发表于 2024-12-5 17:16



    谢谢,问题解决
作者: aloha20200628    时间: 2024-12-5 19:49

本帖最后由 aloha20200628 于 2024-12-5 19:59 编辑

回复 1# jun.

比较准确的匹配模式如下,分隔符之间须有数字才被认可
  1. echo "10__0__2__6"|findstr /i /r /c:"[0-9][0-9]*__[0-9][0-9]*__[0-9][0-9]*__[0-9][0-9]*">nul&&(echo ok)||(echo no)
复制代码
以下匹配模式则认可分隔符之间没有数字,即 “______” 也会被认可...
  1. echo "10__0__2__6"|findstr /i /r /c:"[0-9]*__[0-9]*__[0-9]*__[0-9]*">nul&&(echo ok)||(echo no)
复制代码

作者: jun.    时间: 2024-12-9 17:19

回复 8# aloha20200628


    感谢大佬,解释的非常到位。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2