目录
第一篇文章用来概括正则表达式的规则,为后面三大算法做基础,至于实际的使用方法,可以看一下我的下一篇文章。
其实后面那个示例都是在使用的情况下自己去找,有一个印象就行了,不难。所以,我只列举了一些我常用的在上面。
1.正则表达式是什么?
含义: 正则表达式是指对字符串进行操作的逻辑公式,即一个公式。
正则表达式中常用的特殊符号.(若想匹配本身,则需要用转义符号 \特殊符号)
符号 含义 简单示例 含义
. 点 匹配单个字符 [] 中括号 表示一个区间 [abc] [a-z] 表示abc中一个字符、表示a到z中的一个字符 * 星号 附加表示一个或多个字符(不可单独使用) [a-z]* 表示a-z中的1个或者多个字符 + 加号 附加表示0个或多个字符(不可单独使用) [a-z]* 表示a-z中0个或多个字符 ? 问号 表示0个或者一个字符 +? 表示重复1次或更多次,但尽可能少重复。(贪婪与非贪婪常使用该符号) {} 花括号 表示一个计数区间,用于指定个数 a{2,4} a{2,} 表示2-4个a 表示至少两个a | 或符号 表示或者,只取多个中的一个 a|b a与b中只能取一个 ^ 异或符号 表示行的开始或字符串中表示否定 [^ ABC] ^abc 排除ABC三个字符以外的字符、表示abc开头 $ 美元符号 表示行的末尾 abc$ ^abc$ 表示abc结尾 表示abc开头和结尾即本身 \ 斜杠 表示格式字符 \? 表示问号本身 \d 十进制数字0-9 (\d){2,3} (\\d){2,3}
表示2-3个十进制数字 表示2-3个d \D 非十进制的字符 (\D){2,3} (\\D){2,3} 表示2-3个非十进制数字的字符 表示2-3个D本身 \w 表示一个字母或者数字 (\w){2,3} 同上表示 表示2-3个字母或数字 \W 表示非字母且非数字 (\W){2-3} 表示2-3个非字母且非数字 \\b(d) 表示以d字母开头的字符串 \\. 表示字符 【点】
2. 正则表达式的常用规则示例
初等(先来几个简单的,了解一下)
- “ab" 表示以ab开头的字符串,例如”abc“ ”abc ed“
- ”ab+" 表示一个字符串,由一个a和至少一个b组成
- "ab?" 表示一个字符串,由一个a和一个或零个b组成
- "ab{2,3}" 表示一个字符串,由一个a和2-3个b组成
- “access|boot" 表示一个字符串,为access或者boot
- "(a|b)*c" 表示一个字符串, 由一个或多个a(或者b) + c 混合而成
- [a-zA-Z] 表示一个字符,为一个字母
- ”[a-zA-Z0-9]$" 表示一个字符串,由一个字母或数字结束。
- 错误提示[ab\\d] 中括号中不能由转义字符
中等(文本框验证输入)
- “[\w]*" 只能输入数字或者字母的字符串
- "[\d]{5,11}" 只能输入一串数字,5-11位,例如QQ号码
- "[^\uFF00-\uFFFF]" 只能输入全角的
- "[^\u4E00-\u9FA5]" 只能输入汉字
高等(各种格式验证)
- ”[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+ “ 检验普通电话、传真号码:可以“+”或数字开头,可含有减号和空格
- ”http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}“ 检验URL
- “([0-9A-F]{2})(-[0-9A-F]{2}){5}” 检验mac地址
- “[-+]?\d+(\.\d+)?” 值类型
- “\\d{4}-\\d{1,2}-\\d{1,2}” 日期格式2018-7-30
- ”(\\d+){5,11}@(\\w+)\\.(\\w){3}“ QQ邮箱格式