英文“regular expressions”原意很简单,就是“规则化的表达方式”
正则表达式讲究“合规”,日常表达讲究“随性”;正则表达式让计算机看懂字符串,日常表达让人类懂你说什么。
·
“正则表达式”这个翻译,第一次听,真以为是皇上定下的哪条祖训
其实英文“regular expressions”原意很简单,就是“规则化的表达方式”——用一套专门的符号,描述字符串的规律(regularity)。
叫“regular”不是说它很正经(regular=规矩),而是说它能用规则(regular rules)来**“表达”**你要找的文本模式。
历史上为什么叫 regular expression?
最早是数学家在描述“正规语言(regular languages)”的时候,发明了一套小语法,可以描述所有“可以用有限状态自动机(finite automata)”识别的字符串集合。
所以叫 regular,就是“符合正规语言规则的表达式”!不是正经表达,也不是正规军表达,更不是正则巡逻队……
说回翻译,要我说,其实“规则表达式”或者“合规表达式”都挺好,既不高冷,也没那么玄学。
所以总结:
- “regular expressions”得名是因为它用规则(regular rules)来表达字符串模式。
- “正则表达式”这翻译太正经,不如叫“合规表达式”,直接明了,查你没商量!
在中文语境中,“Regular Expression” 被翻译为“正则表达式”,其中“正则”意指“符合规则的”,强调其在字符串模式匹配中的规范性。然而,这一翻译并非完全准确,曾引发一些讨论。例如,有观点认为“规则表达式”或“合规表达式”可能更贴切地反映其本质,即描述字符串模式的规则 。
合规表达式(Regular Expression) vs 日常表达(Daily Expression)
| 合规表达式 (Regular Expression) |
日常表达 (Daily Expression) |
|
|---|---|---|
| 定义 | 用一套专门的符号和语法描述文本匹配规则 | 普通人在日常生活中的说话、表达方式 |
| 目的 | 精确匹配、提取或验证特定的字符串模式 | 沟通、表达思想和情感 |
| 语法/形式 | 复杂、结构化,常有特殊符号(如.*, [a-z]+等) |
自然语言,无特殊限制 |
| 示例 | /\d{3}-\d{4}-\d{4}/ 匹配电话号码格式 |
“你电话多少?” “我手机号是…” |
| 应用场景 | 编程、数据处理、文本校验、批量替换等 | 日常交流、写作、聊天 |
| 容错性 | 语法严格,不容许模糊 | 语义宽松,只要能理解就行 |
类比说明
- 正则表达式:就像警察查身份证,必须格式正确、一个字符不能错。
- 日常表达:就像朋友聊天,讲得清楚就行,哪怕语法不通顺别人也能懂。
一句话总结
- 正则表达式讲究“合规”,日常表达讲究“随性”;
- 正则表达式让计算机看懂字符串,日常表达让人类懂你说什么。
更多推荐
所有评论(0)