无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3480|回复: 24
打印 上一主题 下一主题

常用的正则表达式,不知道怎么直接使用到批处理里面?

[复制链接]
跳转到指定楼层
1#
发表于 2022-5-21 14:33:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
2#
发表于 2022-5-21 15:57:49 来自手机 | 只看该作者
楼主这都是网上直接搜来的吧,而且应该都没测试。。。

^在[]外面的意思是行的开始,在[]里面的意思是取反,比如[^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 常见表达法的详细情况,请见联机命令参考。”可见其还有很多未知用法,时间太久,我也不知道联机帮助何在。。。

点评

这个东西我觉得如果不是有专门的用途不必过于研究,使用一些常用的正则表达式也足够在批处理扩展用途了  详情 回复 发表于 2022-5-21 16:12
回复

使用道具 举报

3#
发表于 2022-5-21 16:06:22 | 只看该作者
sed for windows,233KB,https://github.com/mbuilov/sed-windows
回复

使用道具 举报

4#
 楼主| 发表于 2022-5-21 16:12:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

5#
发表于 2022-5-21 16:15:33 来自手机 | 只看该作者
findstr无+你写aa*c试,要省事用grep

点评

我只是举例说明findstr支持有限。  详情 回复 发表于 2022-5-21 17:46
回复

使用道具 举报

6#
发表于 2022-5-21 16:16:39 | 只看该作者
如果是纯批处理,就是想得美!如果使用第三方程序,就没有说不可的!
回复

使用道具 举报

7#
发表于 2022-5-21 16:18:24 来自手机 | 只看该作者
正则种类很多,要贪婪模式得api或第三方
回复

使用道具 举报

8#
发表于 2022-5-21 16:19:34 | 只看该作者
回复

使用道具 举报

9#
发表于 2022-5-21 17:09:58 | 只看该作者
脱离环境和样本是空谈,所有的通用都是有条件的。如果用VBS写,要不要考虑PE是否支持呢。
回复

使用道具 举报

10#
发表于 2022-5-21 17:21:16 | 只看该作者
有些PE把 PowerShell 都砍了的。
回复

使用道具 举报

11#
发表于 2022-5-21 17:46:01 来自手机 | 只看该作者
szwp 发表于 2022-5-21 16:15
findstr无+你写aa*c试,要省事用grep

我只是举例说明findstr支持有限。

点评

任何东西都是有限制的,参考9楼。  详情 回复 发表于 2022-5-21 17:53
回复

使用道具 举报

12#
发表于 2022-5-21 17:47:55 | 只看该作者
正则一直是我头疼的内容,怎么也学不会!

点评

高深的东西没必要学,简单的可以找一些图形化的正则工具  发表于 2022-7-19 08:52
回复

使用道具 举报

13#
发表于 2022-5-21 17:53:08 | 只看该作者
nttwqz 发表于 2022-5-21 17:46
我只是举例说明findstr支持有限。

任何东西都是有限制的,参考9楼。
回复

使用道具 举报

14#
发表于 2022-5-21 18:09:29 | 只看该作者
试试grep?
回复

使用道具 举报

15#
 楼主| 发表于 2022-5-21 21:13:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

16#
发表于 2022-5-21 22:10:03 来自手机 | 只看该作者
正则史半个多世纪了,同一表达式不同引擎结果,没有完全的

点评

正则感觉很强大,不知道发明这个的大神能不能完全运用它  详情 回复 发表于 2022-5-21 23:47
回复

使用道具 举报

17#
 楼主| 发表于 2022-5-21 23:47:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

18#
发表于 2022-5-22 08:26:53 | 只看该作者
请教:用pecmd写,怎么写:
测知%abc%中含有“1314”字符串…
回复

使用道具 举报

19#
发表于 2022-5-22 08:35:42 | 只看该作者
bjay2008xmy 发表于 2022-5-21 23:47
正则感觉很强大,不知道发明这个的大神能不能完全运用它

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-28 07:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表