标题: [文本处理] 123或者456的正则表达式是怎么写的 [打印本页]
作者: netdzb 时间: 2021-4-14 05:41 标题: 123或者456的正则表达式是怎么写的
echo "Gh12hDh123BHjh456fh"|sed "s/[[1-3][4-6]]//g"
要求得到
Gh12hDhBHjhfh
我的写法有问题,
请教一下大家正确的写法。
作者: qixiaobin0715 时间: 2021-4-14 05:53
正常应当是:123|456
作者: qixiaobin0715 时间: 2021-4-14 05:59
纯批也行- @echo off
- set str=Gh12hDh123BHjh456fh
- set str=%str:123=%
- set str=%str:456=%
- echo,%str%
- pause
复制代码
作者: xp3000 时间: 2021-4-14 06:03
正则- echo "Gh12hDh123BHjh456fh"|sed -E "s/[0-9]{3}//g"
复制代码
组合- echo "Gh12hDh123BHjh456fh"|sed "s/123//g;s/456//g"
复制代码
作者: netdzb 时间: 2021-4-14 06:52
回复 3# qixiaobin0715
set str=%str:123=%
:123= 表示去掉123字符串吗?
作者: qixiaobin0715 时间: 2021-4-14 07:03
替换而已。比如 set str=%str:123=abc% 表示将123替换为abc,等号右边什么也不写,实际就是删除等号左边的字符。
作者: netdzb 时间: 2021-4-14 07:50
回复 6# qixiaobin0715
一个文本文件只有一个.wav的关键字,如果想替换成.flac应该怎么写?是用findstr吗?我请教的是批处理的写法。
作者: qixiaobin0715 时间: 2021-4-14 08:13
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set "str=%%a"
- set "str=!str:.wav=.flac!"
- echo,!str!
- )
- pause
复制代码
作者: netdzb 时间: 2021-4-14 08:15
回复 8# qixiaobin0715
谢谢,原来批处理也有sed命令的功能啊。
作者: qixiaobin0715 时间: 2021-4-14 08:25
各有千秋吧。sed可以使用正则替换,而set不行,只能替换字符固定的字符,还可以截取位置固定的字符。
作者: Batcher 时间: 2021-4-14 09:14
回复 7# netdzb
参考set命令教程第9页
http://bbs.bathome.net/thread-31727-1-1.html
作者: cutebe 时间: 2021-4-14 09:25
管道,转义的或
echo Gh12hDh123BHjh456fh|sed "s/123\|456//g"
作者: xczxczxcz 时间: 2021-4-14 10:03
findstr [0-9][0-9][0-9]
作者: qixiaobin0715 时间: 2021-4-14 10:08
findstr好像只能搜索,不能替换。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |