正则表达式的功能
- 验证字符串的有效性
- 替换符合正则表达式的特定文本
- 从字符串中提取符合条件的字符串
正则表达式实例
- 获取特殊符号内的字符串,测试字符串为
'[FAMILY]'='AA'
- 包含特殊符号的正则表达式
\[.*?\]
,结果为[FAMILY]
- 不包含特殊符号的正则表达式
(?<=\[).+?(?=\])
,结果为FAMILY
- 包含特殊符号的正则表达式
正则表达式语法符号
普通字符
- a-z、A-Z、0-9、空格等
- 任何非
特殊字符
的字符 - 各种字节字符
特殊字符(元字符)
基本元字符
元字符 描述 . 句号匹配任意单个字符除了换行符。 [ ] 字符种类。匹配方括号内的任意字符。 [^ ] 否定的字符种类。匹配除了方括号里的任意字符 * 匹配>=0个重复的在*号之前的字符。 + 匹配>=1个重复的+号前的字符。 ? 标记?之前的字符为可选. 表示前面的字符0个或1一个 {n,m} 匹配num个大括号之前的字符或字符集 (n <= num <= m). (xyz) 字符集,匹配与 xyz 完全相等的字符串. | 或运算符,匹配符号前或后的字符. \ 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
^ 从开始行开始匹配. $ 从末端开始匹配. 简写字符集
简写 描述 . 除换行符外的所有字符 \w 匹配所有字母数字,等同于 [a-zA-Z0-9_]
\W 匹配所有非字母数字,即符号,等同于: [^\w]
\d 匹配数字: [0-9]
\D 匹配非数字: [^\d]
\s 匹配所有空格字符,等同于: [\t\n\f\r\p{Z}]
\S 匹配所有非空格字符: [^\s]
\f 匹配一个换页符 \n 匹配一个换行符 \r 匹配一个回车符 \t 匹配一个制表符 \v 匹配一个垂直制表符 \p 匹配 CR/LF(等同于 \r\n
),用来匹配 DOS 行终止符
引用
常用Regex表达式
- 从字符串中提取文件名和扩展名
[^\/]+\.\w+$
- 从字符串中提取文件名
[^\/]+(?=\.[^.]+$)
- 从字符串中扩展名
\.([^.]+)$
- 匹配电话号码:
^1[3-9]\d{9}$
- 匹配邮箱地址:
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
- 匹配身份证号码:
^\d{17}[\d|X]|\d{15}$
- 匹配URL地址:
^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$
- 匹配日期:
^\d{4}-\d{1,2}-\d{1,2}$
- 匹配IP地址:
^((25[0-5]|2[0-4]\d|[0-1]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d?\d)$
- 匹配邮政编码:
^[1-9]\d{5}$
- 匹配中文字符:
[\u4e00-\u9fa5]
- 匹配手机号中间四位为星号:
^1[3-9]\d{4}\*{4}\d{3}$
===