找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31665|回复: 13

[文本处理] 123或者456的正则表达式是怎么写的

[复制链接]
发表于 2021-4-14 05:41:59 | 显示全部楼层 |阅读模式
echo "Gh12hDh123BHjh456fh"|sed  "s/[[1-3][4-6]]//g"

要求得到
Gh12hDhBHjhfh

我的写法有问题,
请教一下大家正确的写法。
发表于 2021-4-14 05:53:40 | 显示全部楼层
正常应当是:123|456
发表于 2021-4-14 05:59:28 | 显示全部楼层
纯批也行
  1. @echo off
  2. set str=Gh12hDh123BHjh456fh
  3. set str=%str:123=%
  4. set str=%str:456=%
  5. echo,%str%
  6. pause
复制代码
发表于 2021-4-14 06:03:48 | 显示全部楼层
正则
  1. echo "Gh12hDh123BHjh456fh"|sed -E "s/[0-9]{3}//g"
复制代码
组合
  1. echo "Gh12hDh123BHjh456fh"|sed "s/123//g;s/456//g"
复制代码
 楼主| 发表于 2021-4-14 06:52:03 | 显示全部楼层
回复 3# qixiaobin0715


set str=%str:123=%

:123= 表示去掉123字符串吗?
发表于 2021-4-14 07:03:50 | 显示全部楼层
替换而已。比如 set str=%str:123=abc% 表示将123替换为abc,等号右边什么也不写,实际就是删除等号左边的字符。
 楼主| 发表于 2021-4-14 07:50:07 | 显示全部楼层
回复 6# qixiaobin0715

一个文本文件只有一个.wav的关键字,如果想替换成.flac应该怎么写?是用findstr吗?我请教的是批处理的写法。
发表于 2021-4-14 08:13:04 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (a.txt) do (
  4.     set "str=%%a"
  5.     set "str=!str:.wav=.flac!"
  6.     echo,!str!
  7. )
  8. pause
复制代码
 楼主| 发表于 2021-4-14 08:15:33 | 显示全部楼层
回复 8# qixiaobin0715

谢谢,原来批处理也有sed命令的功能啊。
发表于 2021-4-14 08:25:04 | 显示全部楼层
各有千秋吧。sed可以使用正则替换,而set不行,只能替换字符固定的字符,还可以截取位置固定的字符。
发表于 2021-4-14 09:14:51 | 显示全部楼层
回复 7# netdzb


参考set命令教程第9页
http://bbs.bathome.net/thread-31727-1-1.html
发表于 2021-4-14 09:25:38 | 显示全部楼层
管道,转义的
echo Gh12hDh123BHjh456fh|sed "s/123\|456//g"
发表于 2021-4-14 10:03:16 | 显示全部楼层
findstr [0-9][0-9][0-9]
发表于 2021-4-14 10:08:24 | 显示全部楼层
findstr好像只能搜索,不能替换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:57 , Processed in 0.021286 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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