gpt4 book ai didi

正则表达式匹配埃及象形文字

转载 作者:行者123 更新时间:2023-12-02 01:44:27 25 4
gpt4 key购买 nike

我想知道一个正则表达式来匹配埃及象形文字。我完全一无所知,需要你的帮助。

我无法发布这些字母,因为堆栈溢出似乎无法识别它。

谁能告诉我这些字符的 unicode 范围。

最佳答案

TLDNR:\p{Egyptian_象形文字}

Javascript

Egyptian_Hieroglyphs属于“星体”平面,使用超过 16 位来编码字符。从 ES5 开始,Javascript 不支持星体平面 ( more on that ),因此您必须使用代理对。第一个代理是

U+13000 = d80c dc00

最后一个是

U+1342E = d80d dc2e

这给出了

re = /(\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E])+/g

t = document.getElementById("pyramid").innerHTML
document.write("<h1>Found</h1>" + t.match(re))
<div id="pyramid">

some 𓀀 really 𓀁 old 𓐬 stuff 𓐭 𓐮

</div>

这就是 Noto Sans Egyptian Hieroglyphs 的样子安装:

enter image description here

其他语言

在支持 UCS-4 的平台上,您可以直接使用埃及代码点 130001342F,但语法因系统而异。例如,在Python(3.3以上)中,它将是[\U00013000-\U0001342E]:

>>> s = "some \U+13000 really \U+13001 old \U+1342C stuff \U+1342D \U+1342E"
>>> s
'some 𓀀 really 𓀁 old 𓐬 stuff 𓐭 𓐮'
>>> import re
>>> re.findall('[\U00013000-\U0001342E]', s)
['𓀀', '𓀁', '𓐬', '𓐭', '𓐮']

最后,如果您的正则表达式引擎支持 unicode 属性,您可以(并且应该)使用这些属性而不是硬编码范围。例如在 php/pcre 中:

$str = " some 𓀀 really 𓀁 old 𓐬 stuff 𓐭  𓐮";

preg_match_all('~\p{Egyptian_Hieroglyphs}~u', $str, $m);
print_r($m);

打印

[0] => Array
(
[0] => 𓀀
[1] => 𓀁
[2] => 𓐬
[3] => 𓐭
[4] => 𓐮
)

关于正则表达式匹配埃及象形文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28896329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com