正则表达式[,-.]查找,-.三个字符的一点疑问

探讨使用grep的范围正则表达式[a-b]在UTF-8编码下匹配特定字符的问题,通过验证发现字典序并非如预期般连续,揭示了Unicode与ASCII编码在字典序上的差异。

grep支持的基本正则表达式(BRE:Basic Regular Expression)中有范围正则表达式:[a-b],我电脑Shell用UTF-8字符编码:
在这里插入图片描述
编辑有0516.txt字符文档中包含一些测试用的标点符号和字母:
在这里插入图片描述
当我要查找,-.三个标点符号字符时,想用范围正则表达式,因为UNICODE和ASCII编码中,-.这三个符号是连续的,并通过在terminal中按ctrl-shift-u-002C验证了确实能通过UNICODE的十六进制码值输入对应的UNICODE字符:
ASCII码表:http://www.asciima.com/ascii/12.html
UNICODE码表:https://www.ssec.wisc.edu/~tomw/java/unicode.html#x0370
在这里插入图片描述
所以我认为其字典序也是连续的,但却得到:

非但没有匹配到’,‘下一行的’-’,反而匹配到了’/ ! : ; ?'字符,难道字典序中,-.三个符号不是连续排列的么?目前还没发现原因啊,先记下。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值