知识卡片

相对引用比绝对编号更抗结构变更

专业/工作 · 50

内容

正则表达式里的反向引用最初只能用绝对分组编号(如\1指第一个括号),一旦在前面插入新的分组,后面所有引用的编号都要跟着重新计算,非常脆弱;改用相对编号(如\g{-1}表示”离我最近的前一个分组”)后,插入新分组不再影响已有引用的正确性。发散:这体现了一个更通用的原则——用相对定位代替绝对索引能提升结构变更时的健壮性,同样的思路也出现在相对路径与绝对路径、相对定位与绝对定位的取舍中,[[缩小变量作用域降低调试成本]]讲的是缩小可见范围,这里讲的是降低变更耦合,都是让局部改动不牵连全局的手段。

参考来源

《Perl语言入门(第五版)》第7章《漫游正则表达式王国》