背景
我们在写正则表达式的时候,有过一些经验的开发同学都被建议过,想要匹配数字
应该用 0-9
, 而不是 \d
因为这两个匹配到字符集不一样,那么到底差别在哪里?能不能举个具体的例子?
\d
\d
的 含义是 unicode decimal digit
翻译过来就是 10进制数字
但是 “数字”一定就是大家所理解的 “0-9”嘛?
我搜了一下资料,发现了一个有趣的网站 unicode 数字列表
里面列出来了“各个语言”的“数字”
结论
所以 0-9
是 『阿拉伯数字』
\d
是所有语言的数字,如 阿拉伯数字
藏文数字
等等
unicode 和 UTF8
不知道大家有没有发现,我看的是 unicode
字符集,但是我们平时都是 UTF-8
编码,是一个东西吗?
是的,unicode
是内容, utf-8
是一种编码方式
类似的概念就是: RPC的时候,body是内容,底层的json或者 protobuf 就是编码方式
网友评论