无忧启动论坛

标题: 常用的正则表达式,不知道怎么直接使用到批处理里面? [打印本页]

作者: bjay2008xmy    时间: 2022-5-21 14:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: nttwqz    时间: 2022-5-21 15:57
楼主这都是网上直接搜来的吧,而且应该都没测试。。。

^在[]外面的意思是行的开始,在[]里面的意思是取反,比如[^a-z],不匹配所有小写字母。
$用来匹配行的结束
+匹配一次或更多
*匹配零次或更多

所以你的一堆比如下面这个,只能匹配大写字母开头和结尾的一行,如果行首尾有范围之外的字符,比如空格,就无法匹配
5. 由26个大写英文字母组成的字符串:^[A-Z]+$

批处理不用第三方工具,支持的正则十分有限,而且findstr的帮助也不够详细,如果想利用正则,还是编程语言来的更可靠,功能更强大,findstr只能算个玩具。当然,有第三方工具也不错,不过我没用过。

  1. # python 3.x
  2. str = 'aaac'
  3. a = re.findall(r'a+c', str)
  4. a
  5. ['aaac']
复制代码
  1. # 但是findstr这样就无法匹配
  2. echo aaac|findstr /r /c:"a+c"
  3. # 这样可以,但是a+c必需有至少一个a,a*c却可以没有,所能也能匹配c
  4. echo aaac|findstr /r /c:"a*c"
复制代码


findstr帮助末尾的一句“有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。”可见其还有很多未知用法,时间太久,我也不知道联机帮助何在。。。

作者: liuzhaoyzz    时间: 2022-5-21 16:06
sed for windows,233KB,https://github.com/mbuilov/sed-windows

作者: bjay2008xmy    时间: 2022-5-21 16:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: szwp    时间: 2022-5-21 16:15
findstr无+你写aa*c试,要省事用grep
作者: chishingchan    时间: 2022-5-21 16:16
如果是纯批处理,就是想得美!如果使用第三方程序,就没有说不可的!
作者: szwp    时间: 2022-5-21 16:18
正则种类很多,要贪婪模式得api或第三方
作者: 2010techon    时间: 2022-5-21 16:19
findstr仅支持部分正则
参考:http://www.bathome.net/thread-57570-1-1.html

可以考虑使用 PowerShell 或者VBS
https://docs.microsoft.com/zh-cn ... regular_expressions
https://docs.microsoft.com/zh-cn ... age-quick-reference
作者: szwp    时间: 2022-5-21 17:09
脱离环境和样本是空谈,所有的通用都是有条件的。如果用VBS写,要不要考虑PE是否支持呢。
作者: dfw9    时间: 2022-5-21 17:21
有些PE把 PowerShell 都砍了的。
作者: nttwqz    时间: 2022-5-21 17:46
szwp 发表于 2022-5-21 16:15
findstr无+你写aa*c试,要省事用grep

我只是举例说明findstr支持有限。
作者: su45    时间: 2022-5-21 17:47
正则一直是我头疼的内容,怎么也学不会!
作者: szwp    时间: 2022-5-21 17:53
nttwqz 发表于 2022-5-21 17:46
我只是举例说明findstr支持有限。

任何东西都是有限制的,参考9楼。
作者: htmlc4    时间: 2022-5-21 18:09
试试grep?
作者: bjay2008xmy    时间: 2022-5-21 21:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: szwp    时间: 2022-5-21 22:10
正则史半个多世纪了,同一表达式不同引擎结果,没有完全的
作者: bjay2008xmy    时间: 2022-5-21 23:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: me007003    时间: 2022-5-22 08:26
请教:用pecmd写,怎么写:
测知%abc%中含有“1314”字符串…
作者: szwp    时间: 2022-5-22 08:35
bjay2008xmy 发表于 2022-5-21 23:47
正则感觉很强大,不知道发明这个的大神能不能完全运用它

想多了,不要指望会写少数民族的表达式。
也不要指望linux的发明人会用所有linux。
多找度娘问问就不会这样问了。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3