正则表达式

对字符串操作的一种逻辑公式
正则表达式,又称规则表达式、常规表示法(Regular Expression,简写为regex、regexp或RE)[1],是计算机科学的一个概念。正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。[4]通常用于查找、替换符合特征的字符串,或者用来验证某个字符串是否符合指定的特征。[5]
正则表达式最初的想法源于1940年[5],神经学家沃伦·麦卡洛克(Warren McCulloch)和数学家沃尔特·皮茨(Walter Pitts)在对人类神经系统如何工作的早期研究中,研究出的一种数学描述方式。[6]1951年,数学家斯蒂芬·科尔·克莱因(Stephen Cole Kleene)在发表的《神经网事件的表示法》论文中首次提出了正则表达式的概念。[6][3]1968年,UNIX操作系统之父肯尼斯·蓝·汤普森(Kenneth Lane Thompson)将正则表达式应用到了UNIX的QED编辑器的搜索算法中。[6][5]到现在为止,正则表达式已经成为文本编辑器和搜索工具的一个重要部分,并被应用到各种编程语言中。[6]
正则表达式主要有POSIX标准和PCRE流派。[7]不同的流派支持的元字符和这些元字符代表的意义存在着细微的差异[5],元字符的类型有转义符、字符组、分组、匹配量词、锚点和零宽断言,以及多选结构和嵌入条件等。[5]正则表达式可应用于各种编程语言和文本处理工具中[7],在数据科学、文本分析、网络爬虫、字符串搜索和替换等领域都有广泛的应用。[2]

发展历史

起源