gpt4 book ai didi

regex - 为什么正则表达式符号仍然用 ASCII 编写?

转载 作者:行者123 更新时间:2023-12-02 05:52:17 27 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




正则表达式很难阅读。它们难以阅读的部分原因是它们使用非常小的字符列表 (ASCII) 进行编码。

为什么不使用 Unicode 中更广泛的字符创建正则表达式的新符号?

backslash plague反斜杠被重载的事实导致:它同时意味着“一个反斜杠”和“下一个字母不是它自己”。

但这有点疯狂,不是吗?反斜杠应该只是一个反斜杠,并且“下一个字母不是它本身”应该是不太可能出现在文本中的内容。

对此的明显 react 将是“但您选择的任何内容也可能出现在文本中!”是的,这是真的。但是想要匹配反斜杠的概率(考虑到我们发现自己的历史)在天文数字上高于 Unicode 中其他一些晦涩的符号。

或者用括号:当我们可以使用其他字符时,为什么我们必须写 [\[\]] ——我不知道,也许是东亚字符之类的:

《[]》

叫我疯子但是
>>> re.compile('《[]》')

对我来说看起来比以下更具可读性:
>>> re.compile('[\[\]]')

甚至还有 specific characters对于换行符之类的东西:


我不确定一个人的可读性很强,但你明白吗?也许应该是


或者


我并不是要暗示这些特定的角色选择中的任何一个都是“正确的”。据我所知,我很惊讶似乎没有关于这个话题的任何讨论。

为什么人们愿意忍受尝试用小字母编写正则表达式的痛苦后果?

更新

哇,我对这个问题引起的 mock 感到惊讶。有什么大不了的?

由于我下面乱七八糟的评论与几条评论有关,我就写在这里:

恕我直言,“我们没有 key ”的论点对我来说没有多大意义。我们在这里谈论多少个“特殊字符”?假设绝对最大值为 100。(这太疯狂了,实际上它可能更像是 20。)

输入法不是我要说的——毕竟,我们不会对那些想在除拉丁字母之外的书写系统中使用计算机的人说“对不起,那些键不在键盘上”?当然不是。

根本不是我们依靠硬件来确定我们用什么字符集来编写文本的情况。那些日子已经一去不复返了。现在,每一种称职的编程语言都或多或少地支持Unicode,或者正在研究它。它迟早会普及。

不过,如果这里的态度代表了大多数科技行业,我想我们都会喜欢逃到 2050 年代。

惊人的。

最佳答案

你的键盘上有那些字符的键吗?

关于regex - 为什么正则表达式符号仍然用 ASCII 编写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268859/

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