正则表达式:匹配与验证的关键技术

需积分: 7 0 下载量 102 浏览量 更新于2024-09-20 收藏 13KB TXT 举报
"正则表达式" 正则表达式(Regular Expression)是一种强大的文本处理工具,主要用于模式匹配、数据提取、验证输入等场景。在网页开发和Java编程中,正则表达式常用于验证邮箱、IP地址等输入的合法性。 1. **基本元字符** - `.`: 匹配任意单个字符,除了换行符。 - `*`: 重复前面的字符0次或多次。 - `+`: 重复前面的字符1次或多次。 - `?`: 重复前面的字符0次或1次。 - `{n}`: 重复前面的字符n次。 - `{n,}`: 重复前面的字符n次或更多次。 - `{n,m}`: 重复前面的字符n到m次。 2. **特殊字符类** - `\d`: 匹配数字,等同于`[0-9]`。 - `\D`: 匹配非数字字符,等同于`[^0-9]`。 - `\s`: 匹配任何空白字符,包括空格、制表符、换页符等。 - `\S`: 匹配任何非空白字符。 - `\w`: 匹配字母、数字、下划线,等同于`[A-Za-z0-9_]`。 - `\W`: 匹配非字母、数字、下划线的字符,等同于`[^A-Za-z0-9_]`。 3. **预定义字符类** - `[\u4e00-\u9fa5]`: 匹配汉字范围。 - `[^\x00-\xff]`: 匹配非ASCII字符。 4. **分组与引用** - `()`: 创建一个捕获组,可以引用匹配的子串。 - `(?...)`: 非捕获组,不保存匹配的子串。 5. **边界匹配** - `^`: 行首匹配。 - `$`: 行尾匹配。 - `\b`: 单词边界。 - `\B`: 非单词边界。 6. **量词修饰符** - `*?`: 非贪婪匹配,尽可能少地匹配。 - `+?`: 非贪婪匹配。 - `??`: 非贪婪匹配。 - `{n,}?`: 非贪婪匹配。 7. **正则表达式实例** - `[\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*]`: 邮箱地址匹配。 - `[a-zA-z]+://[^\s]*`: URL匹配。 - `^\s*|\s*$`: 匹配字符串开头和结尾的空白字符。 - `^[a-zA-Z][a-zA-Z0-9_]{4,15}$`: 用户名验证,字母开头,长度5-16,包含字母、数字和下划线。 - `\d{3}-\d{8}|\d{4}-\d{7}`: 电话号码匹配。 - `[1-9][0-9]{4,}`: QQ号匹配。 - `\d{15}|\d{18}`: 身份证号匹配。 - `\d+\.\d+\.\d+\.\d+`: IP地址匹配。 8. **IP地址的正则验证** - `^[1-9]\d*$`: 验证IP地址段的每个部分是否为非零的数字。 - `^-[1-9]\d*$`: 验证负数IP地址段。 - `^-?[1-9]\d*$`: 验证正负整数IP地址段。 - `^[1-9]\d*|0$`: 验证非负整数IP地址段。 - `^-?[1-9]\d*|0$`: 验证正负整数IP地址段。 - `^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$`: 验证浮点型IP地址段。 - `-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$`: 更复杂的浮点型IP地址段验证。 9. **字符集** - `^[A-Za-z]+$`: 匹配由26个英文字母组成的字符串。 - `^[A-Z]+$`: 匹配由26个大写英文字母组成的字符串。 - `^[a-z]+$`: 匹配由26个小写英文字母组成的字符串。 - `^[A-Za-z0-9]+$`: 匹配由26个英文字母和数字组成的字符串。 - `^\w+$`: 匹配由26个英文字母、数字和下划线组成的字符串。 10. **邮箱地址验证** - `^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+`: 一个基础的邮箱地址验证正则表达式。 11. **URL验证** - `^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)*`: URL验证表达式,包含了协议、域名和路径等元素。 正则表达式的灵活性和强大功能使得它在各种编程语言中都得到广泛应用,但同时也需要根据具体需求进行调整和优化。掌握正则表达式有助于提高处理字符串的效率和准确性。