(作者:张滋,撰写时间:2019年4月8日)
首先,我们要理解正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式 通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。
正则表达式由普通字符以及特殊字符组成的文字模式,也是描述一种字符串匹配的模式,可以将某个字符模式与所搜索的字符串进行匹配。我们可以通过正则表达式,可以测试到字符串内是不是有我们想要的数据。正则表达式主要用来验证、搜索和替换,比如:
- 可以测试字符串内的模式。
例如,可以测试输入字符串,以查看字符串内是否出现电话号码的字符串。这被称为数据验证。 电话号码正则表达式(支持手机号码,34位区号,78位直播号码,1-4位分机号): ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})(\d{7,8})|(\d{4}|\d{3})(\d{7,8})(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})(\d{4}|\d{3}|\d{2}|\d{1}))$) - 也可以将你需要的数据替换文本。
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。 - 当然基于模式匹配从字符串中提取子字符串。
可以查找文档内或输入域内特定的文本。 - 纯文本看起来可能不像是个正则表达式,但它的确是。正则表达式可以包含纯文本(甚至可以只包含纯文本)。当然,像这样使用正则表达式是没什么意义,但把它作为学习正则表达式的起点还是不错的。
正则表达式中的反斜杠字符(\)指示其后跟的字符是特殊字符,或应按原义解释该字符。
所谓特殊字符,就是一些有特殊含义的字符,如上面说的"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls \*.txt。比如:
\ : 在后面带有不识别的转义字符时,与该字符匹配。