美文网首页
正则表达式 \d 0-9 字符集到底差异在哪里

正则表达式 \d 0-9 字符集到底差异在哪里

作者: Yellowtail | 来源:发表于2021-04-14 10:35 被阅读0次

    背景

    我们在写正则表达式的时候,有过一些经验的开发同学都被建议过,想要匹配数字 应该用 0-9, 而不是 \d
    因为这两个匹配到字符集不一样,那么到底差别在哪里?能不能举个具体的例子?

    \d

    \d 的 含义是 unicode decimal digit 翻译过来就是 10进制数字
    但是 “数字”一定就是大家所理解的 “0-9”嘛?

    我搜了一下资料,发现了一个有趣的网站 unicode 数字列表

    里面列出来了“各个语言”的“数字”

    比如 image.png

    结论

    所以 0-9 是 『阿拉伯数字』
    \d 是所有语言的数字,如 阿拉伯数字 藏文数字 等等

    unicode 和 UTF8

    不知道大家有没有发现,我看的是 unicode 字符集,但是我们平时都是 UTF-8编码,是一个东西吗?
    是的,unicode是内容, utf-8是一种编码方式
    类似的概念就是: RPC的时候,body是内容,底层的json或者 protobuf 就是编码方式

    参考

    unicode 数字列表
    藏文unicode编码

    相关文章

      网友评论

          本文标题:正则表达式 \d 0-9 字符集到底差异在哪里

          本文链接:https://www.haomeiwen.com/subject/fqrklltx.html