Board logo

标题: [文本处理] [已解决]批处理命令findstr正则表达式的疑问 [打印本页]

作者: lonron    时间: 2024-5-10 14:10     标题: [已解决]批处理命令findstr正则表达式的疑问

type "C:\ProgramData\test.txt" | findstr "[a-z]"
test.txt 内容如下:
aaaaa
bbbbb
ccccc
ddddd
eeeee
fffff
ggggg
hhhhh
iiiii
jjjjj
kkkkk
lllll
mmmmm
nnnnn
ooooo
ppppp
qqqqq
rrrrr
sssss
ttttt
uuuuu
vvvvv
wwwww
xxxxx
yyyyy
zzzzz
AAAAA
BBBBB
CCCCC
DDDDD
EEEEE
FFFFF
GGGGG
HHHHH
IIIII
JJJJJ
KKKKK
LLLLL
MMMMM
NNNNN
OOOOO
PPPPP
QQQQQ
RRRRR
SSSSS
TTTTT
UUUUU
VVVVV
WWWWW
XXXXX
YYYYY
ZZZZZ


当查找[a-z]时实际结果不显示“Z”,当查找[A-Z]时实际结果不显示“a”,一定要写成[a-zA-Z]这样才可以?
如果加上/i 不区分大小写时又可以正常,这是为什么?是BUG吗?
而且不加/i时不是应该[a-z]时不显示所有大写,[A-Z]时不显示所有小写才对嘛?
求老师们解惑。。。
作者: qixiaobin0715    时间: 2024-5-10 14:16

本帖最后由 qixiaobin0715 于 2024-5-10 14:24 编辑
  1. 显示所有英文字母:
  2. findstr [a-Z]
  3. 显示小写字母:
  4. findstr [abcdefghijklmnopqrstuvwxyz]
  5. 显示大写字母与上同理。
复制代码

作者: lonron    时间: 2024-5-10 14:18

回复 2# qixiaobin0715


    那z-A之间的字符不是会显示吗?
作者: qixiaobin0715    时间: 2024-5-10 14:48

本帖最后由 qixiaobin0715 于 2024-5-10 14:51 编辑

回复 3# lonron
z-A之间还有什么字符?
看看这个可能就明白了
http://bbs.bathome.net/viewthread.php?tid=6851&from=favorites
作者: lonron    时间: 2024-5-10 15:31

回复 4# qixiaobin0715


    震惊了,居然不是按ASCII排序的!这下明白为什么没有a和Z了
作者: lonron    时间: 2024-5-10 15:39

回复 4# qixiaobin0715


    那PS的-match这类的用到正则时候它是按ASCII排序的吗?还是说也和P的一样?之前处理这类比值的时候确实想当然了。
作者: qixiaobin0715    时间: 2024-5-10 15:40

回复 6# lonron
好像就是cmd比较特殊。
作者: lonron    时间: 2024-5-10 15:46

回复 7# qixiaobin0715


    感谢感谢万分感谢,要不是今天偶然发现这个问题,真就没想过需要特别了解一下这方面比值大小的事,惭愧
作者: 娜美    时间: 2024-5-10 16:26

本帖最后由 娜美 于 2024-5-10 16:28 编辑

if test.txt是带有"BOM UTF8"编码   gawk grep sed Find  findstr识别第一行的字节都会有问题,  "BOM UTF8"编码文本   要在第一行留空一行
  1. find  "aaaaa"  test.txt
  2. findstr  "aaaaa"  test.txt
  3. 锘縜aaaa
复制代码





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