正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。 正则表达式是烦琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真阅读本教程,加上应用的时候进行一定的参考,掌握正则表达式不是问题。 许多程序设计语言都支持利用正则表达式进行字符串操作。 ### 正则表达式知识点详解 #### 一、正则表达式概述 正则表达式是一种强有力的工具,用于处理文本中的模式匹配与替换任务。它能够帮助开发者在文本数据中执行搜索、替换以及提取等操作。尽管初学时可能会觉得有些复杂,但一旦掌握了其规则,就能大大提高开发效率。 #### 二、常见正则表达式规则解析 **1. 验证用户名和密码** - **规则**: `^[a-zA-Z]\w{5,15}$` - **解释**: 用户名必须以字母开始,并且整个用户名长度为6到16位之间。其中`\w`表示任何字母数字或下划线。 - **示例**: "User_123" **2. 验证电话号码** - **规则**: `^(\d{3,4}-)\d{7,8}$` - **解释**: 电话号码格式为区号3到4位数字加横杠后跟7到8位数字。 - **示例**: "010-12345678" **3. 验证手机号码** - **规则**: `^1[3|4|5|7|8][0-9]\d{8}$` - **解释**: 手机号码以1开头,第二位为3、4、5、7或8,剩余9位为任意数字。 - **示例**: "13812345678" **4. 验证身份证号** - **规则**: `\d{14}[[0-9],0-9xX]` - **解释**: 身份证号为15位或18位数字,如果是18位,则最后一位可以是数字或大写X。 - **示例**: "123456789012345X" **5. 验证Email地址** - **规则**: `^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$` - **解释**: 匹配标准的电子邮件地址格式。 - **示例**: "example@example.com" **6. 数字和字母组成的字符串** - **规则**: `^[A-Za-z0-9]+$` - **解释**: 字符串只能包含数字和26个英文字母。 - **示例**: "ABC123" **7. 整数或者小数** - **规则**: `^[0-9]+([.][0-9]+){0,1}$` - **解释**: 匹配整数或小数,小数部分可选。 - **示例**: "123.45" **8. 只能输入数字** - **规则**: `^[0-9]*$` - **解释**: 字符串只能包含数字。 - **示例**: "12345" **9. n位数字** - **规则**: `^\d{n}$` - **解释**: 字符串必须恰好为n位数字。 - **示例**: "12345" (假设n为5) **10. 至少n位数字** - **规则**: `^\d{n,}$` - **解释**: 字符串至少包含n位数字。 - **示例**: "1234567" (假设n为5) **11. m~n位数字** - **规则**: `^\d{m,n}$` - **解释**: 字符串必须包含m至n位数字。 - **示例**: "12345" (假设m为3, n为5) **12. 零和非零开头的数字** - **规则**: `^(0|[1-9][0-9]*)$` - **解释**: 字符串可以以0开头或以非0数字开头。 - **示例**: "00123" **13. 两位小数的正实数** - **规则**: `^[0-9]+(\.[0-9]{2})?$` - **解释**: 字符串必须是一个正实数,小数部分最多为两位。 - **示例**: "123.45" **14. 1~3位小数的正实数** - **规则**: `^[0-9]+(\.[0-9]{1,3})?$` - **解释**: 字符串必须是一个正实数,小数部分最多为三位。 - **示例**: "123.456" **15. 非零的正整数** - **规则**: `^\+?[1-9][0-9]*$` - **解释**: 字符串必须是非零的正整数。 - **示例**: "+123" **16. 非零的负整数** - **规则**: `^\-[1-9][0-9]*$` - **解释**: 字符串必须是非零的负整数。 - **示例**: "-123" **17. 长度为3的字符** - **规则**: `^.{3}$` - **解释**: 字符串长度必须为3。 - **示例**: "abc" **18. 英文字母组成的字符串** - **规则**: `^[A-Za-z]+$` - **解释**: 字符串只能包含26个英文字母。 - **示例**: "abcdefg" **19. 大写字母组成的字符串** - **规则**: `^[A-Z]+$` - **解释**: 字符串只能包含26个大写英文字母。 - **示例**: "ABCDEFG" **20. 小写字母组成的字符串** - **规则**: `^[a-z]+$` - **解释**: 字符串只能包含26个小写英文字母。 - **示例**: "abcdefg" **21. 验证特殊字符** - **规则**: `[%&',;=?$\\^]+` - **解释**: 字符串包含特定特殊字符。 - **示例**: "%&'" **22. 汉字验证** - **规则**: `^[\u4e00-\u9fa5]{0,}$` - **解释**: 字符串只能包含汉字。 - **示例**: "你好" **23. URL验证** - **规则**: `^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$` - **解释**: 匹配以"http://"开头的标准URL。 - **示例**: "http://www.example.com" **24. 验证月份** - **规则**: `^(0?[1-9]|1[0-2])$` - **解释**: 字符串只能表示1到12月。 - **示例**: "09" **25. 验证日期** - **规则**: `^((0?[1-9])|((1|2)[0-9])|30|31)$` - **解释**: 字符串只能表示1到31日。 - **示例**: "31" **26. 日期正则表达式** - **规则**: `\d{4}[年|\-|\.]\d{1,12}[月|\-|\.]\d{1,31}日?` - **解释**: 匹配大多数年月日信息格式。 - **示例**: "2023-03-05" **27. 匹配双字节字符** - **规则**: `[^\x00-\xff]` - **解释**: 匹配非ASCII字符,如汉字。 - **示例**: "你好" **28. 匹配空白行** - **规则**: `\n\s*\r` - **解释**: 匹配空白行,用于删除文本中的空白行。 - **示例**: "\n\n" **29. 匹配HTML标记** - **规则**: `<(\S*?)[^>]*>.*?</>|<.*?>` - **解释**: 匹配简单的HTML标签,但无法处理复杂的嵌套结构。 - **示例**: "<p>段落</p>" **30. 匹配首尾空白字符** - **规则**: `^\s*|\s*$` - **解释**: 删除字符串首尾的空白字符。 - **示例**: " hello " **31. 匹配网址URL** - **规则**: `[a-zA-z]+://[^\s]*` - **解释**: 匹配网址URL,包括http://或https://开头。 - **示例**: "http://example.com" **32. 帐号合法性验证** - **规则**: `^[a-zA-Z][a-zA-Z0-9_]{4,15}$` - **解释**: 帐号必须以字母开头,允许5-16个字符,可以包含字母、数字或下划线。 - **示例**: "User_123" **33. 匹配腾讯QQ号** - **规则**: `[1-9][0-9]{4,}` - **解释**: 腾讯QQ号从10000开始,后面跟着任意数量的数字。 - **示例**: "12345678" **34. 匹配中国邮政编码** - **规则**: `[1-9]\d{5}(?!\d)` - **解释**: 中国邮政编码为6位数字,首位不能为0。 - **示例**: "100000" **35. 匹配IP地址** - **规则**: `([1-9]{1,3}\.){3}[1-9]` - **解释**: IP地址格式为四组1-3位数字,每组数字用点分隔。 - **示例**: "192.168.0.1" **36. 匹配MAC地址** - **规则**: `([A-Fa-f0-9]{2}\:){5}[A-Fa-f0-9]` - **解释**: MAC地址由六组两位十六进制数字组成,中间用冒号分隔。 - **示例**: "00:1A:2B:3C:4D:5E" #### 三、正则表达式的应用场景 正则表达式广泛应用于文本处理、数据验证、搜索替换等场景,特别是在编程语言中,如JavaScript、Python、Java等都有内置的支持。 通过上述知识点的学习,我们可以更好地理解和应用正则表达式,在实际项目中解决各种文本处理的问题。希望本文能够帮助您更加深入地了解正则表达式,并在日常工作中灵活运用。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java 多线程课程的代码及少量注释.zip
- 数据库课程设计-基于的个性化购物平台的建表语句.sql
- 数据库课程设计-基于的图书智能一体化管理系统的建表语句.sql
- Java 代码覆盖率库.zip
- Java 代码和算法的存储库 也为该存储库加注星标 .zip
- 免安装Windows10/Windows11系统截图工具,无需安装第三方截图工具 双击直接使用截图即可 是一款免费可靠的截图小工具哦~
- Libero Soc v11.9的安装以及证书的获取(2021新版).zip
- BouncyCastle.Cryptography.dll
- 5.1 孤立奇点(JD).ppt
- 基于51单片机的智能交通灯控制系统的设计与实现源码+报告(高分项目)