把字符条件写成模式

正则表达式把一组字符串条件压缩成可执行的模式。例如一个数字字符类后面跟着重复次数,就能描述若干位数字;文字、字符类和连接顺序一起决定哪些片段符合要求。搜索函数再把模式应用到输入,返回匹配位置或是否成功,使同一规则能够反复用于不同文本。

参考:[1]

分组与重复怎样配合

括号可以把若干部分组织成一个整体,也常用于捕获匹配的内容,供后续程序读取。量词控制某一部分出现多少次;贪婪与非贪婪写法会影响可选结果的先后。实际提取时还要检查未匹配分组、空匹配和重复匹配的位置,才能把找到的片段正确交给下一步处理。

参考:[2]

搜索与完整校验不同

在一段文字里找到符合模式的片段,与要求整段输入都符合条件,是不同任务。Python分别提供搜索和完整匹配等操作,边界符的行为也受模式选项影响。校验电话号码等输入时,需要先明确允许的格式、空白和字符范围,再选择对应操作,避免把局部命中误认为整个值都有效。

参考:[1]

引擎决定细节与成本

不同语言的正则引擎支持的断言、分组和转义规则有所不同,模式移植需要重新核对。反斜线还可能同时经过宿主语言字符串的转义。包含多层重复的某些回溯模式,在不匹配输入上会尝试大量路径;处理外部文本时,模式结构和输入长度都属于性能设计的一部分。

参考:[2]