V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kinboy
V2EX  ›  程序员

Regular Expression 为何会翻译成正则表达式,而不是规则表达式

  •  
  •   kinboy · 2021-08-16 08:01:15 +08:00 via Android · 7027 次点击
    这是一个创建于 1223 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直对正则二字的含义不理解,所以去查了下,原来是古汉语词汇,意为:常规,规则

    以下是百度百科的引用

    正则是一个汉语词汇,拼音为 zhèng zé,基本意思是正其礼仪法则;正规;常规;正宗等。出自《楚辞·离骚》、《插图本中国文学史》、《东京赋》等文献。

    那么为什么当初不翻译成更加浅显易懂的规则表达式呢?

    56 条回复    2021-08-17 17:36:33 +08:00
    feather12315
        1
    feather12315  
       2021-08-16 08:45:03 +08:00 via Android
    还有个翻译:正规表达式
    IgniteWhite
        2
    IgniteWhite  
       2021-08-16 08:50:05 +08:00
    https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F#%E8%AD%AF%E5%90%8D%E5%95%8F%E9%A1%8C

    Regular Expression 的 Regular 一般被譯為正则、正规或常規。此處的 Regular 即是規則、規律的意思,Regular Expression 即「描述某種規則的表達式」之意。
    jorneyr
        3
    jorneyr  
       2021-08-16 08:57:49 +08:00   ❤️ 9
    翻译为正则,首先没错,二是翻译的人文学素养比你的建议强很多。
    silkriver
        4
    silkriver  
       2021-08-16 09:02:03 +08:00
    汉语词汇丰富,各种写法通常也能让人秒懂,最终确定规范时基本上就是看谁定的词接受度更高一点
    weixiangzhe
        5
    weixiangzhe  
       2021-08-16 09:02:03 +08:00 via iPhone   ❤️ 7
    可能是我文学素养 确实太低了,好多英文我看懂了中文还是没有看懂吧
    weixiangzhe
        6
    weixiangzhe  
       2021-08-16 09:07:48 +08:00
    x(?=y) 先行断言 Lookahead assertion: (positive lookahead) Matches “x” only if “x” is followed by “y”. For example, /Jack(?=Sprat)/ matches “Jack” only if it is followed by “Sprat”. `/Jack(?=Sprat
    x(?!y) 正向否定查找 Negative lookahead assertion: Matches “x” only if “x” is not followed by “y”. For example, /\d+(?!\.)/ matches a number only if it is not followed by a decimal point. /\d+(?!\.)/.exec('3.141') matches “141” but not “3”.
    (?<=y)x 后行断言 Lookbehind assertion: Matches “x” only if “x” is preceded by “y”. For example, /(?<=Jack)Sprat/ matches “Sprat” only if it is preceded by “Jack”. `/(?<=Jack
    (?<!y)x 反向否定查找 Negative lookbehind assertion: Matches “x” only if “x” is not preceded by “y”. For example, /(?<!-)\d+/ matches a number only if it is not preceded by a minus sign. /(?<!-)\d+/.exec('3') matches “3”. /(?<!-)\d+/.exec('-3') match is not found because the number is preceded by the minus sign.

    __
    话说这些翻译中文的确实有点难理解😂
    IgniteWhite
        7
    IgniteWhite  
       2021-08-16 09:09:57 +08:00   ❤️ 10
    实用角度出发:比如我问你,这个正则怎么写?你肯定知道我说的是正则表达式。
    如果是规则表达式:这个规则怎么写?你会问我,什么规则?我说,匹配的那个规则。你问,各种 wildcard 和 globbing 都是匹配的规则,你说的哪个。我说,规则表达式那个。
    vopin
        8
    vopin  
       2021-08-16 09:24:05 +08:00 via iPhone   ❤️ 1
    有可能是翻译的日语 正規表現
    最近发现日语的数学、计算机词汇和中文很像
    Leonard
        9
    Leonard  
       2021-08-16 09:28:13 +08:00   ❤️ 23
    专有名词翻译成一个非常用词,使用起来比较会没有歧义
    anjianshi
        10
    anjianshi  
       2021-08-16 09:29:39 +08:00
    编程词汇翻译还扯什么文学素养,装逼...
    FakNoCNName
        11
    FakNoCNName  
       2021-08-16 09:34:57 +08:00
    @anjianshi 难道你看现在这些年翻译的东西没觉得更难理解、更恶心吗。

    现在的狗屁翻译,干脆都不翻译了,直接音译过来。
    SilentDepth
        12
    SilentDepth  
       2021-08-16 09:36:46 +08:00 via iPad
    @anjianshi #10 不然。翻译就是翻译,跟主题无关。好的翻译对文学素养是有要求的。
    kenvix
        13
    kenvix  
       2021-08-16 09:46:25 +08:00
    @anjianshi 不管什么领域,翻译都应该讲究信达雅
    luckykong
        14
    luckykong  
       2021-08-16 09:47:17 +08:00 via Android   ❤️ 1
    @weixiangzhe 先行断言 和 Lookahead assertion,这两个哪一个都不好理解吧。好理解的是后面的英文解释说明。 但这样的话翻译成中文,也很容易理解啊
    silkriver
        15
    silkriver  
       2021-08-16 09:48:17 +08:00
    追究一个词是古汉语词汇还是日语词汇是没有意义的,只要遵循汉语的基本法就是汉语。walkman 是日本人生造的,但它就是个英语单词。
    huang119412
        16
    huang119412  
       2021-08-16 09:49:03 +08:00   ❤️ 1
    鲁棒性不服,感觉像拿着棒子打人😅
    koast
        17
    koast  
       2021-08-16 09:52:15 +08:00 via Android
    @weixiangzhe #6 确实,这些中文翻译我一开始看了就???看了英语原文之后也能理解为什么这么翻译,但是不得不说,这种翻译方法不是很直观(指看到词能猜到大概意思)
    laoyur
        18
    laoyur  
       2021-08-16 10:09:09 +08:00
    @huang119412 看起来 说文学素养是装逼 的那人应该会喜欢 鲁棒性 这个翻译吧
    Mohanson
        19
    Mohanson  
       2021-08-16 10:24:12 +08:00
    句柄...
    plko345
        20
    plko345  
       2021-08-16 10:46:08 +08:00 via Android
    正则这个翻译很有水平啊
    fredli
        21
    fredli  
       2021-08-16 10:47:47 +08:00
    有意思,这个翻译是大陆最先的么?还是香港台湾传过来的?
    lujjjh
        22
    lujjjh  
       2021-08-16 10:48:52 +08:00
    很多词数学里也有,像函数( function )、正则( regular ),虽然 CS 领域的意思不太一样,但是翻译借鉴过来了。

    不同地区的翻译也有区别,比如台湾就是把 regular expression 翻译成规则运算式。
    southsala
        23
    southsala  
       2021-08-16 10:55:54 +08:00
    我刚学编程的时候,不明白健壮性是个什么鬼,编程和健身有什么关系。
    aguesuka
        24
    aguesuka  
       2021-08-16 10:57:38 +08:00
    regularization = 正规化(数学)
    normalizer = 中心化子和正规化子 (Centralizer and normalizer) 范畴学. 至少把这两个先区分再说有水平吧.
    作为业余译者, 直觉上 "positivity" 才应该是 "正规", 其它两个应该都应该换个翻译.
    nullcoder
        25
    nullcoder  
       2021-08-16 11:03:05 +08:00
    @Leonard "专有名词翻译成一个非常用词,使用起来比较会没有歧义"

    体会一下 memory 这个词在英语里的意思,觉不觉得这个词比起“内存”很形象?
    而 k8s 里的 pod,至今没有统一 /官方的中文翻译。
    aguesuka
        26
    aguesuka  
       2021-08-16 11:15:04 +08:00
    如果要重新翻译"正则", 应该是意译, 需要蕴含 "字符串匹配表达式" 的含义, 或者像 "cron 表达式" 一样不要翻译. 直译"成规则"就是又重走把 "function" 翻译成 "函数" 的路, 也不好.
    securityCoding
        27
    securityCoding  
       2021-08-16 11:17:09 +08:00 via Android
    @huang119412 这个鲁棒性真的是日了狗
    mekingname
        28
    mekingname  
       2021-08-16 11:18:27 +08:00
    我理解的是:正则=> 如果[正]确[则]提取。
    如果你的 pattern 写得正确,符合目标数据的格式,则把目标数据提取出来
    aguesuka
        29
    aguesuka  
       2021-08-16 11:37:51 +08:00
    @jorneyr
    https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE
    和制汉语正規表現(せいきひょうげん、英: regular expression ).
    和人文素养没有关系
    aoeui
        30
    aoeui  
       2021-08-16 11:54:29 +08:00 via Android
    @huang119412
    鲁棒性 台译:強健性
    句柄 台译:把手
    PrinceofInj
        31
    PrinceofInj  
       2021-08-16 12:25:07 +08:00 via Android
    这个翻译可以把鲁棒按在地上摩擦。
    falcon05
        32
    falcon05  
       2021-08-16 12:30:06 +08:00 via iPhone
    规则表达式明显比较直观和准确,正则表达式?什么是正则,那反则表达式呢?
    kinboy
        33
    kinboy  
    OP
       2021-08-16 12:31:24 +08:00 via Android   ❤️ 1
    @IgniteWhite wildcard 翻译为通配符,就是一个不错的示例,可以是一个专用汉语名词,也容易理解,基本上第一次解除也能猜出个大概意思。
    但是正则这个词在现代汉语中的使用频率应该非常低了,不去查一下还真不知道是什么意思
    kinboy
        34
    kinboy  
    OP
       2021-08-16 12:38:47 +08:00 via Android
    @jorneyr 好的,谢谢
    kinboy
        35
    kinboy  
    OP
       2021-08-16 12:39:40 +08:00 via Android   ❤️ 1
    @laoyur 哈哈哈说起鲁棒总是会想起鲁智深手持大棒 😅
    jorneyr
        36
    jorneyr  
       2021-08-16 12:54:51 +08:00
    @aguesuka 可能你没注意,我提的是正则这个词的翻译比楼主提的规则从文学素养上来说更好,只是针对这个词,与其他方面无关。上面很多人也从各个方面进行了分析,大多人也认同正则比规则更合适。
    libook
        37
    libook  
       2021-08-16 13:37:04 +08:00   ❤️ 3
    正则表达式的发明者是一个数学家,正则表达式是“形式语言学”的范畴,这一开始是属于数学领域的。

    早先计算机还只是数学学科下的一个子学科,大量的概念都是来自于数学中的概念,比如咱们耳熟能详的函数;按照题主的思路,function 应该翻译成“功能”。

    在数学中有很多跟 regualr 相关的概念,中文都是被翻译成正则,正则表达式可能是为了翻译上的统一性,所以也翻译成了正则。

    至于数学上为什么这样翻译,有兴趣的人可以去考究一下,这个可能比较难,因为数学是一门古老的学科,有些数学概念甚至是古代的时候产生的,用的名字也是古汉语(比如勾股定理),以至于如今人们会觉得晦涩难懂。我个人更倾向的推测是,“正”是动词或副词性,“则”为名词性。

    翻译成“规则表达式”确实浅显了,但不易懂,因为“规则”的含义太通用了,反而不能让人快速联想到是众多“规则”里的哪一种,而且并不是所有可以用来匹配字符串的“规则”都是 Regular Expression 。

    即便是英语,同一个词汇在不同的语境下的意思也可能不一样,词典上的对照不是铁律,只是一种辅助意会的工具,否则机器翻译技术就不会那么难了。
    falcon05
        38
    falcon05  
       2021-08-16 14:02:18 +08:00 via iPhone
    @libook 不要拿数学当挡箭牌好吗?数学还讲究对称呢?有正数有负数,有正则表达式,那负则表达式呢?
    autoxbc
        39
    autoxbc  
       2021-08-16 14:16:13 +08:00   ❤️ 2
    译名一旦形成就没什么可争论了,举个例子:

    近代翻译大家「严复」都知道吧,没人敢说比他更懂翻译,他非常执着的要把今天常用的「社会」(Society)一词翻译为「群」,你说严复对还是不对,这个事已经无法深究了。而「社会」其实是个日本造汉字词,这又涉及到现代汉语里大量的日本造汉字词,这又是另一个话题了
    Kilerd
        40
    Kilerd  
       2021-08-16 14:34:36 +08:00   ❤️ 1
    技术圈的中文翻译你跟我说文学素养?
    robust 鲁棒性
    socket 套接字( socket programing 套接字编程)

    还有吧 goroutine 翻译成 「 go 程」 的
    你品,你细品
    Biwood
        41
    Biwood  
       2021-08-16 14:36:03 +08:00
    第一次听说“正则表达式”这个词语,感觉挺唬人的,直到后来真正学习了并且用起来之后才发现,也就那样...

    查了一下
    台湾翻译:正规表达式
    日本翻译:正规表现

    对比一下,会发现“正则”的歧义更少。这大概是语言的接受程度跟语言本身的独特性中间的一种取舍。
    generic
        42
    generic  
       2021-08-16 15:30:44 +08:00
    @Leonard 那你把数学里 群,环,格,特征,理想 等等常用到不能再常用的词,给换个“比较会没有歧义”的版本呗
    Leonard
        43
    Leonard  
       2021-08-16 15:45:53 +08:00
    @generic #42 我换了又不算
    adoal
        44
    adoal  
       2021-08-16 16:18:28 +08:00
    可能第一个这么翻译的人是刘仁轨的粉丝。
    vinceall
        45
    vinceall  
       2021-08-16 18:20:22 +08:00
    没毛病,有病的是鲁棒性
    tLbf2p3UC4BM3H1N
        46
    tLbf2p3UC4BM3H1N  
       2021-08-16 21:25:55 +08:00
    仅仅是一个先行性和习惯性的问题,所谓的“说正则你会想到正则”,只是习以为常了而已。
    mitoop
        47
    mitoop  
       2021-08-16 21:35:50 +08:00 via iPhone
    有过同样的疑问 regular expression 有规律的表达式 不知道正则是怎么来的
    titan2006
        48
    titan2006  
       2021-08-16 21:44:21 +08:00 via iPhone
    为了装逼胡乱翻译的产物,搞得翻译者很懂的样子
    ohiu
        49
    ohiu  
       2021-08-16 22:00:51 +08:00 via iPhone
    不是很喜欢这种故意表现的“好像有些家底”一样的翻译,也不是很赞成翻译它,专有词汇翻译本身既突破语言壁垒又创造语言壁垒,倒不如直接说 RE 表达式
    kidding
        50
    kidding  
       2021-08-16 23:36:18 +08:00
    @huang119412 玩个梗 鲁棒性:指粗鲁的状态下也能表现的很棒。
    snw
        51
    snw  
       2021-08-16 23:37:24 +08:00 via Android
    起源不知道,但从结果来说,起一个相对比较独特的词汇搜索起来比较容易。
    (然后望向一堆单字母和特殊字符作为名称的编程语言🐶)
    boboliu
        52
    boboliu  
       2021-08-17 04:38:02 +08:00
    @falcon05 #38 数学啥时候「讲究对称」了……这从历史和事实做结论的推导怎么就「挡箭牌」了……

    在计算机还没有那么强大的年代,现在很多常用的东西就已经被计算机学家、或者说跨界的数学家和逻辑学家以数学语言的方式推导和定义了。翻译自然要考虑到数学界前有的翻译。
    adormer
        53
    adormer  
       2021-08-17 04:52:23 +08:00
    翻译很难做到完美,正则是挺难懂的,但是确实称得上信达雅.很多专业名词都挺晦涩难懂的,即使是母语造出来的词
    qwerthhusn
        54
    qwerthhusn  
       2021-08-17 08:19:50 +08:00
    玩游戏,简中 > 英文 > 繁中
    看技术资料,英文 > 简中
    araraloren
        55
    araraloren  
       2021-08-17 08:56:05 +08:00
    @vopin 因为确实很多词 ,近代的 都是 从 日文翻译 直接借用的.. 这样我们就不用翻译了 哈哈
    falcon05
        56
    falcon05  
       2021-08-17 17:36:33 +08:00
    @libook 數學是數學,你把沒什麼關係的事拉到數學來狐假虎威強行就不對了。block.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.