正则表达式完全指南:匹配规则与实战示例
5星 · 超过95%的资源 需积分: 9 194 浏览量
更新于2024-09-11
收藏 4KB TXT 举报
"正则表达式相关知识点"
正则表达式是编程中用于处理字符串的强大工具,它通过特定的语法模式来匹配、查找、替换或提取文本。在本摘要中,我们将深入探讨正则表达式的各种核心概念和常用元字符。
1. **元字符**
- `.`: 匹配任意单个字符,除了换行符。
- `\s`: 匹配任何空白字符,包括空格、制表符和换行符。
- `\S`: 匹配任何非空白字符。
- `\d`: 匹配数字0-9。
- `\w`: 匹配字母、数字、下划线,等价于`[a-zA-Z0-9_]`。
- `\W`: 匹配非`\w`的字符,即非字母、数字、下划线。
2. **量词**
- `*`: 匹配前面的元素零次或多次。
- `+`: 匹配前面的元素一次或多次。
- `?`: 匹配前面的元素零次或一次。
- `{n}`: 匹配前面的元素恰好n次。
- `{n,}`: 匹配前面的元素至少n次。
- `{n,m}`: 匹配前面的元素n到m次。
3. **边界匹配**
- `^`: 匹配输入字符串的开始位置。
- `$`: 匹配输入字符串的结束位置。
4. **预定义字符类**
- `\d{6}`: 匹配连续的六个数字。
- `^\d{6}$`: 匹配整行的六个数字。
- `^[0-9]*[1-9][0-9]*$`: 匹配非零开头的任意长度数字串。
5. **分组与反向引用**
- `(pattern)`: 创建一个捕获组,可以使用`\1`、`\2`等进行反向引用。
6. **否定预查**
- `(?!)`: 负向前瞻,确保接下来的模式不匹配。
7. **正向预查**
- `(?=pattern)`: 正向前瞻,确保接下来的模式匹配,但不包含在匹配结果中。
8. **实例应用**
- 邮箱地址验证:`^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$`
- URL验证:`^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$`
9. **代码示例**
```javascript
var s = "430101199809099998";
var re = /\d{17}(\d|X|Y)/;
if (re.test(s)) {
alert("身份证号码校验成功");
}
```
上述代码使用正则表达式检查字符串是否符合18位身份证号码格式,包括最后一位的X或Y。
10. **注意事项**
- 在JavaScript中,字符串的长度可以通过`length`属性获取,但若包含多字节字符(如中文),可能需要额外处理,如`str.replace(/[^x00-xff]/g, "aa").length`。
11. **特殊字符转义**
- 如果需要匹配特殊字符(如`.`或`(`等),需要使用反斜杠` \` 进行转义。
通过熟练掌握这些基本概念和技巧,你可以编写出强大的正则表达式,处理复杂的文本匹配需求。在实际编程中,正则表达式常用于数据验证、文本搜索和替换等场景。
1789 浏览量
1883 浏览量
1055 浏览量
210 浏览量
223 浏览量
2025-01-06 上传
2025-01-06 上传
2025-01-06 上传
一只胖乎乎的鱼
- 粉丝: 2
- 资源: 24
最新资源
- RBF神经网络 聚类算法
- Drupal.Creating.Blogs.Forums.Portals.and.Community.Websites
- UML从入门到精通电子书籍
- 悟透javascript
- IMAGE process using MATLAB
- ExtJs+中文手册
- flexelint reference
- 基于SVPWM的永磁同步电动机永磁同步电动机控制系统仿真与实验研究
- 3d游戏程序设计入门
- Hibernate开发指南
- MLDN oracle 语法教程.pdf
- Hibernate实体映射策略复合主键
- 地图学编号的基本知识
- hibernate常見錯誤
- ArcGIS Engine轻松入门
- 计算机网络知识总结 计算机网络 - 学习笔记