最实用最全面的正则表达式

### 正则表达式知识点详解 #### 一、概述 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,用于实现对文本的查找、替换、匹配等功能。本文将详细介绍一系列实用且全面的正则表达式,旨在帮助开发者在实际工作中更加高效地完成相关任务。 #### 二、匹配中文字符 **正则表达式**: `[u4e00-u9fa5]` - **应用场景**: 当需要验证或匹配中文字符时,此表达式非常有效。 - **注意事项**: 在JavaScript等语言中,需要使用`/\u4e00-\u9fa5/g`这样的形式来表示。 #### 三、匹配双字节字符 **正则表达式**: `[^x00-xff]` - **应用场景**: 计算字符串长度时很有用,尤其是当需要区分ASCII字符与非ASCII字符时。 - **解释**: 此表达式匹配所有非ASCII字符,即从128到255的范围内的字符。 #### 四、匹配空白行 **正则表达式**: `ns*r` - **应用场景**: 清理文本中的空白行。 - **解释**: `n`匹配换行符,`s`匹配任何空白字符,包括空格、制表符等,`*`表示前面的字符可以出现任意次,包括0次。 #### 五、匹配HTML标记 **正则表达式**: `<(S*?)[^>]*>.*?|<.*?>` - **应用场景**: 从文本中移除HTML标记。 - **局限性**: 对于嵌套的HTML标签,该表达式可能无法准确匹配。 - **解释**: `<.*?>`用于匹配单个标签,而`<(S*?)[^>]*>.*?`用于匹配带有内容的标签。 #### 六、匹配首尾空白字符 **正则表达式**: `^s*|s*$` - **应用场景**: 删除字符串首尾的空白字符。 - **解释**: `^s*`匹配字符串开头的空白字符,`s*$`匹配字符串末尾的空白字符。 #### 七、匹配Email地址 **正则表达式**: `w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*` - **应用场景**: 表单验证时常用。 - **解释**: `w`匹配任何字母数字字符或下划线,`.`匹配任何单个字符(除了换行符),`*`表示匹配前面的字符0次或多次。 #### 八、匹配网址URL **正则表达式**: `[a-zA-z]+://[^s]*` - **应用场景**: 验证URL的有效性。 - **局限性**: 这个表达式较为简单,只能处理一些基本的URL格式。 - **解释**: `[a-zA-z]+://`匹配协议名,`[^s]*`匹配非空白字符。 #### 九、匹配账号合法性 **正则表达式**: `^[a-zA-Z][a-zA-Z0-9_]{4,15}$` - **应用场景**: 账号的格式验证。 - **解释**: `^[a-zA-Z]`确保账号以字母开头,`[a-zA-Z0-9_]`允许字母、数字和下划线,`{4,15}`限制长度为5到16个字符。 #### 十、匹配电话号码 **正则表达式**: `d{3}-d{8}|d{4}-d{7}` - **应用场景**: 验证电话号码格式。 - **解释**: `d{3}-d{8}`匹配区号3位+号码8位,`d{4}-d{7}`匹配区号4位+号码7位。 #### 十一、匹配QQ号 **正则表达式**: `[1-9][0-9]{4,}` - **应用场景**: 验证QQ号码。 - **解释**: `[1-9]`确保QQ号不以0开头,`[0-9]{4,}`匹配剩余的4位或更多数字。 #### 十二、匹配邮政编码 **正则表达式**: `[1-9]d{5}(?!d)` - **应用场景**: 验证中国邮政编码。 - **解释**: `[1-9]`确保首位不是0,`d{5}`匹配后续的5位数字,`(?!d)`否定预测先行,确保不会有第7位数字。 #### 十三、匹配身份证 **正则表达式**: `d{15}|d{18}` - **应用场景**: 验证身份证号码。 - **解释**: `d{15}`匹配15位身份证号,`d{18}`匹配18位身份证号。 #### 十四、匹配IP地址 **正则表达式**: `d+.d+.d+.d+` - **应用场景**: 提取IP地址。 - **局限性**: 只适用于标准IPv4地址。 - **解释**: `d+`匹配1个或多个数字,`.`匹配点号。 #### 十五、匹配特定数字 - **应用场景**: 处理数值数据时非常有用。 - **示例**: - 匹配正整数: `^[1-9]d*$` - 匹配负整数: `^-[1-9]d*$` - 匹配非负整数: `^[1-9]d*|0$` #### 十六、匹配特定字符串 - **应用场景**: 字符串格式验证。 - **示例**: - 匹配英文字母字符串: `^[A-Za-z]+$` - 匹配大写字母字符串: `^[A-Z]+$` - 匹配小写字母字符串: `^[a-z]+$` - 匹配数字和字母字符串: `^[A-Za-z0-9]+$` #### 十七、使用RegularExpressionValidator进行验证 - **应用场景**: Web表单验证。 - **示例**: - 只能输入数字: `"^[0-9]*$"` - 只能输入n位数字: `"^d{n}$"` - 只能输入m-n位数字: `"^d{m,n}$"` - 验证用户密码: `"^[a-zA-Z]w{5,17}$"` ### 总结 以上列举了一系列常用的正则表达式,涵盖了从简单的数字验证到复杂的文本处理各个方面。掌握这些表达式不仅能提高开发效率,还能提升代码的质量。需要注意的是,在使用正则表达式时,应根据具体的应用场景选择合适的表达式,并适当调整以满足更复杂的需求。



































剩余26页未读,继续阅读

- javaer协2016-04-22很好的学习资源

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Matlab RtAudio类用于实时音频支持。_Matlab RtAudio class for realtime a
- 用于OpenDAP服务器的Matlab客户端-具有简单的单行界面_Matlab client for OpenDAP s
- C Matlab MEX开发工具包。_C++ Matlab MEX development kit..zip
- A free software implementation of the _Vancouver Raman Algor
- 使用Acado工具包在MATLAB_ Speedgoat靶机仿真中进行NMPC设计_NMPC Design in MAT
- 基于纯视觉识别技术的AI聊天助手模拟人类操作自动化工具_视觉识别模拟点击无需系统hook跨平台兼容_用于学习和研究桌面自动化方案探索非商业用途_OpenCVPyAutoGUIPyt.zip
- 用C_C和MATLAB编写的单片机和DSP控制器的数字信号处理库。_A digital signal processin
- 模仿MATLAB控制台的C项目_C++ project that imitates the MATLAB console
- dRx测试套件仓库,兼容MATLAB SDR b_dRx testsuite repo for MATLAB SDR 8
- 基于单目视觉的目标物测量装置_树莓派主控平台结合摄像头视觉测量实现几何形状物体距离和尺寸测量功能_支持A4纸参考物距离测量形状尺寸测量结合YOLO深度学习模型智能图形识别测量特定数.zip
- Azure Kinect的Matlab工具箱_Matlab Toolbox for Azure Kinect.zip
- 一个主要面向业余爱好者和专业人士的小型滑道设计综合机电一体化项目。Repo包含Arduino代码、CAD文件和Matla
- 主要用C语言编写的语音识别项目。MATLAB脚本也用于原型制作。_Speech recognition project
- Matlab和Myo携手并进。这就是项目_Matlab and Myo going hand in hand. This
- Graham Finlayson的光照不变图像算法的开源实现,用于MATLAB_Octave。请注意,该算法已获得专利。


