### 正则表达式知识点详解
#### 一、正则表达式基础介绍
正则表达式(Regular Expression),简称regex或regexp,是一种用于处理字符串的强大工具。它通过一系列简短的符号组合,来描述和匹配一系列符合某个复杂规则的字符串。
#### 二、常用正则表达式汇总
##### 1. 匹配中文字符
- **表达式**:`[\u4e00-\u9fa5]`
- **用途**:该表达式用来匹配单个中文字符。
- **扩展**:如果需要匹配包含多个连续中文字符的字符串,则可以重复使用该模式。
##### 2. 匹配双字节字符
- **表达式**:`[^\x00-\xff]`
- **用途**:匹配非ASCII范围内的双字节字符,通常用于识别中文等其他非英文字符。
- **应用场景**:文本分析、数据清洗等。
##### 3. 获取字符串长度(考虑中文字符)
- **JavaScript代码**:
```javascript
String.prototype.len = function() {
return this.replace(/[^\x00-\xff]/g, "aa").length;
}
- **用途**:此函数计算字符串的实际显示长度,将每个双字节字符视为两个ASCII字符进行计数。
##### 4. 匹配空白字符
- **表达式**:`\n[\s|]*\r`
- **用途**:匹配换行符、空白符等。
##### 5. 匹配HTML标签
- **表达式**:`/<(.*)>.*<\/\1>|<(.*)\/>/`
- **用途**:匹配HTML标签,可用于HTML文档解析、去除HTML标签等操作。
##### 6. 去除两端空白
- **表达式**:`(^\s*)|(\s*$)`
- **用途**:用于去除字符串首尾的空白字符。
##### 7. 匹配邮箱地址
- **表达式**:`\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*`
- **用途**:此表达式可以较为准确地匹配标准的电子邮件地址格式。
##### 8. 匹配URL
- **表达式**:`[a-zA-z]+://[^\s]*`
- **用途**:匹配以字母开头的URL,包括http、https等协议头。
##### 9. 匹配用户名(5-16位,首字母必须是字母)
- **表达式**:`^[a-zA-Z][a-zA-Z0-9_]{4,15}$`
- **用途**:适用于网站注册、账号验证等场景。
##### 10. 匹配电话号码
- **表达式**:`\d{3}-\d{8}|\d{4}-\d{7}`
- **用途**:用于匹配常见的电话号码格式,如区号-号码的形式。
##### 11. 匹配QQ号
- **表达式**:`[1-9][0-9]{4,}`
- **用途**:匹配QQ号,QQ号由5到15位数字组成,且首位不能为0。
##### 12. 匹配邮政编码
- **表达式**:`[1-9]\d{5}(?!\d)`
- **用途**:中国邮政编码为6位数字。
##### 13. 匹配身份证号
- **表达式**:`\d{15}|\d{18}`
- **用途**:匹配中国大陆的15位或18位身份证号码。
##### 14. 匹配IP地址
- **表达式**:`\d+\.\d+\.\d+\.\d+`
- **用途**:用于匹配IPv4地址。
##### 15. 匹配整数
- **表达式**:
- `^[1-9]\d*$`:匹配正整数
- `^-[1-9]\d*$`:匹配负整数
- `^-?[1-9]\d*$`:匹配所有整数
- `^[1-9]\d*|0$`:匹配非零正整数
- `^-[1-9]\d*|0$`:匹配非零负整数
- **用途**:在各种数据处理中用于验证和提取整数。
##### 16. 匹配小数
- **表达式**:
- `^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$`:匹配正小数
- `^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$`:匹配负小数
- `^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$`:匹配所有小数
- `^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$`:匹配非零正小数
- `^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$`:匹配非零负小数
- **用途**:用于数据校验和提取小数。
##### 17. 匹配字母
- **表达式**:
- `^[A-Za-z]+$`:匹配任意26个英文字母组成的字符串
- `^[A-Z]+$`:匹配大写字母组成的字符串
- `^[a-z]+$`:匹配小写字母组成的字符串
- `^[A-Za-z0-9]+$`:匹配大小写字母及数字组成的字符串
- `^\w+$`:匹配字母数字下划线组成的字符串
- **用途**:在密码设置、用户名验证等场景中使用。
以上是一些常用的正则表达式及其应用场景。正则表达式的灵活性和强大功能使其成为处理文本数据不可或缺的工具之一。理解和掌握这些基本的正则表达式可以帮助开发者更加高效地完成字符串处理任务。