wzyboy on Nostr: 发现一个好玩的:在正则表达式里用 [一-龟] ...
发现一个好玩的:在正则表达式里用 [一-龟] 匹配所有常用汉字。
Unicode 里的 CJK 字符有接近十万个,但是常用字都在 BMP 的 0x4E00 到 0x9FFF 这个区间里,约两万个。在这个区间里,第一个码点 0x4E00 对应的是「一」,最后一个码点 0x9FFF 对应的是生僻字「鿿」。如果从后往前看,则会发现 0x9F9F 对应的是常用汉字「龟」,之后的 96 个码点基本都是生僻字。
于是就可以打 [一-龟] 来等效 [\u4E00-\u9F9F] ,在大部分需要匹配汉字的场景都已经足够了…
Published at
2025-01-06 07:41:14Event JSON
{
"id": "707f0b983fba730af9319bc547e9668dd454fcffcd5c088012ce4f3df284805a",
"pubkey": "0d5c143122e3d138af467d8b2397eaee28cbd62243ab0fbc5326e92bf5b5e9d4",
"created_at": 1736149274,
"kind": 1,
"tags": [
[
"imeta",
"url https://files.dabr.ca/90c4fc7e820936e92cf1a881adc244a8864ef819d22d65952f842084b4aa139e.png",
"m image/png"
],
[
"imeta",
"url https://files.dabr.ca/03b081c435f294944c1a3895d5796d06376819a1e97dbc27b4c2850020a8f8fd.png",
"m image/png"
],
[
"proxy",
"https://dabr.ca/objects/2b4db4f5-c237-4e1a-aa6b-8485ae44bb27",
"activitypub"
]
],
"content": "发现一个好玩的:在正则表达式里用 [一-龟] 匹配所有常用汉字。\n\nUnicode 里的 CJK 字符有接近十万个,但是常用字都在 BMP 的 0x4E00 到 0x9FFF 这个区间里,约两万个。在这个区间里,第一个码点 0x4E00 对应的是「一」,最后一个码点 0x9FFF 对应的是生僻字「鿿」。如果从后往前看,则会发现 0x9F9F 对应的是常用汉字「龟」,之后的 96 个码点基本都是生僻字。\n\n于是就可以打 [一-龟] 来等效 [\\u4E00-\\u9F9F] ,在大部分需要匹配汉字的场景都已经足够了…\n\nhttps://files.dabr.ca/90c4fc7e820936e92cf1a881adc244a8864ef819d22d65952f842084b4aa139e.png\nhttps://files.dabr.ca/03b081c435f294944c1a3895d5796d06376819a1e97dbc27b4c2850020a8f8fd.png",
"sig": "d868d47bf0f04d8ac7eba966e053be06e7bfad1183efe884ec041a865289694a35119e0f04f02ed3541c682f15090d40edb066233de64d0fda9251d5754b741c"
}