正则表达式快速指南:读懂与编写

需积分: 9 1 下载量 40 浏览量 更新于2024-09-06 收藏 6KB TXT 举报
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。在编程、文本编辑器和命令行工具中,如Java、grep和vi,它们被广泛应用。掌握正则表达式的基本概念和常用语法是提高文本处理效率的关键。 1. **字符集**:字符集是用方括号`[]`表示的一组字符,例如`[1234]`表示匹配1, 2, 3或4中的任何一个。`[^12]`表示匹配除1和2之外的任何字符。`[1-5]`用于匹配1到5的数字,而`[a-f]`则匹配小写字母a到f。`[0-9a-fA-F]`用于匹配16进制字符。 2. **预定义字符集**: - `\d`:匹配任何数字,等价于`[0-9]`。 - `.`:匹配任意单个字符,但通常不包括换行符。 - `\w`:匹配单词字符,包括字母、数字和下划线,等价于`[0-9a-zA-Z_]`。 - `\s`:匹配任何空白字符,包括空格、制表符、换行符等,等价于`\t\n\r\b\p\D`。 - `\S`:匹配非空白字符。 - `\W`:匹配非单词字符。 3. **量词**: - `{m}`:匹配前面的字符m次。 - `{m,n}`:匹配前面的字符至少m次,最多n次。 - `?`:匹配前面的字符0次或1次,等价于`{0,1}`。 - `+`:匹配前面的字符1次或多次,等价于`{1,}`。 - `*`:匹配前面的字符0次或多次,等价于`{0,}`。 4. **特殊符号**: - `^`:表示匹配字符串的开始。 - `$`:表示匹配字符串的结束。 5. **实例应用**: - `\d{1,3},\s{0,}\d{1,3}$`:匹配形如123,456这样的数字组合,允许逗号后有零个或多个空格。 - `^\d{2,4},\s?\d{2,4}$`:匹配两位到四位的数字,后面可选地跟一个逗号和一个空格,再接两位到四位的数字。 - `^\d{15}(\d{2}[\dxX])?$`:匹配15位的身份证号码,最后两位可以是数字或字母xX。 - `^\d{4}:.{2,4}:\w+:\d{11}:\w+([-+._]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$`:验证电子邮件地址的格式。 - `^[0-9]{6}$`:匹配六位的邮政编码。 - `^(\d{3,4}-)?\d{8}$`:匹配电话号码,可以有3-4位区号,后面跟着8位本地号码。 - `^(\+86)?\s?\d{11}$`:匹配国际电话号码,可以包含“+86”前缀,后面跟着11位数字,允许前有空格。 - `^\d{15}(\d{2}[0-9xX])?$`:匹配15位或18位(最后两位是校验码)的身份证号码。 - `^\d+(,\s*|\s+)\d+$`:匹配两个由逗号分隔的数字,允许逗号前后有空格。 - `^\d{4}-\d{2}-\d{2}$` 和 `^\d{4}(-\d{2}){2}$`:分别匹配“年-月-日”和“年月日”的日期格式。 - `^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$`:匹配IPv4地址。 掌握这些基本的正则表达式模式和用法,将使你在处理字符串时更加得心应手。尽管正则表达式可能在初学时显得复杂,但通过实践和理解,你将能够快速解读和编写复杂的正则表达式,提高你的文本处理能力。不过,记住不要过分投入时间,适度学习即可。