正则表达式完全指南

需积分: 9 2 下载量 92 浏览量 更新于2024-07-18 收藏 3.07MB PDF 举报
"正则表达式教程" 正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。它是由一个字符序列组成的模式,这些字符可以是字母、数字、特殊符号,或者预定义的字符类。在编程语言中,正则表达式常用于字符串操作,如验证输入格式、提取特定信息等。 1. 基本字符: - `.`:匹配任意单个字符,除了换行符。 - `[ ]`:字符集,匹配括号内的任意一个字符。例如,`[0-9]` 匹配任何数字。 - `-`:在字符集中表示范围,如`[a-z]`匹配所有小写字母。 2. 量词: - `*`:匹配前面的字符0次或无限次。 - `+`:匹配前面的字符1次或无限次。 - `?`:匹配前面的字符0次或1次。 - `{n}`:匹配前面的字符恰好n次。 - `{n,}`:匹配前面的字符至少n次。 - `{n,m}`:匹配前面的字符至少n次,但不超过m次。 3. 特殊字符: - `^`:在字符集外部表示否定,如`[^0-9]`匹配非数字字符;在字符串开始处表示匹配字符串开始。 - `$`:在字符串结束处表示匹配字符串结束。 4. 预定义字符类: - `\d`:等价于`[0-9]`,匹配任何数字。 - `\D`:匹配任何非数字字符。 - `\w`:匹配任何字母、数字或下划线。 - `\W`:匹配任何非单词字符。 - `\s`:匹配任何空白字符,包括空格、制表符、换页符等。 - `\S`:匹配任何非空白字符。 5. 转义字符: - `\`:用于对特殊字符进行转义,使其按字面值匹配,如`\(`匹配左括号。 6. 分组与引用: - `( )`:创建一个捕获组,可以引用或重复匹配该组。 - `\1`,`\2`...:引用前面的捕获组。 7. 零宽度断言: - `^`:在字符串开始处,但不包含在匹配结果中。 - `$`:在字符串结束处,但不包含在匹配结果中。 - `\b`:单词边界,匹配单词与非单词字符的边界。 - `\B`:非单词边界。 8. 正向前瞻与后顾: - `(?=...)`:正向前瞻,确保紧跟在当前位置后面的字符序列匹配括号中的正则表达式,但不包含在匹配结果中。 - `(?!...)`:负向前瞻,确保紧跟在当前位置后面的字符序列不匹配括号中的正则表达式。 9. 版本与支持: - 不同的编程语言或工具可能对正则表达式的支持程度不同。例如,`vi`、`awk`、`sed`、`Perl`、`JavaScript`、`Python`、`Ruby`等都有自己的实现和语法差异。 10. 应用场景: - HTML解析:通过正则表达式从HTML文本中提取特定标签或属性。 - URL验证:验证用户输入的URL是否符合规范。 - 邮箱验证:验证邮箱地址格式是否正确。 - 文件名匹配:根据模式匹配文件名,如`data*.dat`匹配以"data"开头,后跟任意数量字符,以".dat"结尾的所有文件。 通过熟练掌握正则表达式,可以极大地提高处理文本数据的效率和准确性。学习和理解正则表达式的各种构造和功能,是每一个IT从业者必备的技能之一。