说说对正则表达式的零宽断言的名词翻译理解,包括前后概念的问题
了解正则的断言前需要明确一个前提:
电脑读取一段字符是从左到右的方向进行的,从当前读取的点看 前方是未读取的字符,后方是已经读取过的字符。
这个前后概念和字符后缀正好反过来了 比如后面是ing的字符 这个后恰恰对应正则读取的前方!
下面开始举例解释零宽断言:
我用一队学生里面找人的例子。
一条队伍里面有多个叫小明的同学。
如何找到自己想要的那个小明呢?
可以根据小明前后同学的差别来区分,比如找后面跟着小红的那个小明。
这就是零宽断言。
类似的你可以说其他三种: 后面跟着不是小红 ,前面是小红, 前面不是小红.
这里面有个疑惑就是名词说明 前面是小红的那个小明 正则名字是零宽后行断言,明明是前面的为什么是后呢?
这里的后是从计算机执行角度理解的,执行正则检测是从左到右,当找到断言的位置时,之前的字符已经搜索过了,需要往回找,所以就是后。
英文的原文 lookbehind 含义也是回头 回顾, 所以翻译成后行 后视之类的似乎不妥。
翻译还是通俗易懂最好,不要创造新名词。
浙公网安备 33010602011771号