正则表达式的介绍
* 正则表达式也叫规则表达式[Regular Expression],是按照一定的规则组成的一个表达式,主要作用是用来匹配字符串的
* 正则表达式可以在大多数编程语言中使用
* 正则表达式的组成:由元字符或者限定符组成的一个式子
* . 表示的是:除换行符(\n)之外的任意单个字符====>"word23"
* [] 表示的是:范围,[0-9]表示的是0到9之间任意的一个数====>"234";[100-199]这种写法是错误的,应该改为[1][0-9][0-9]
* [a-z]表示的是:所有的小写字母中的任意一个;[A-Z]表示的是:所有的大写字母中的任意一个
* [a-zA-Z]表示的是:所有字母中的任意一个;[0-9a-zA-Z]表示的是:所有数字或者字母中的任意一个
* []的另一层含义:把正则表达式中元字符的意义去掉====>[.]就表示一个点
* | 或者 [0-9]|[a-z]表示的是:要么是一个数字,要么是一个小写的字母
* () 分组,提升优先级 [0-9]|([a-z])|[A-Z]
* ([0-9])([a-z])([A-Z])三组,从最左边开始计算
* (()(()))只查左边的半个括号就可以了,共有四组
* * 表示的是:*前面的表达式出现0次或者多次
* [a-z][0-9]*表示的是:小写字母中的任意一个后面要么没有数字,要么有多个数字====>"word33334"
* 匹配中文的正则表达式 [\u4e00-\u9fa5]
* + 表示的是:+前面的表达式出现了1次到多次
* [a-z][9]+表示的是:一个小写字母后面最少有一个9,或者多个9====>"word9999word"
* ? 表示的是:?前面的表达式出现0次到1次[4][a-z]?====>"1314word"
* {
} 能够更加明确前面的表达式出现的次数
* {
0,} 表示的是:前面的表达式出现了0次到多次,和*一样
* {
1,} 表示的是:前面的表达式出现了1次到多次,和+一样
* {
0,1} 表示的是:前面的表达式出现了0次到1次,和?一样
* {
5,7} 表示对是:前面的表达式出现了5次到7次
* {
4} 表示的是:前面的表达式出现了4次
* ^ 表示的是以什么开始,或者是取非(取反)^[0-9]====>"23word"以数字开头
* ^[a-z]以小写字母开始;[^a-z]取反,非小写字母;[^0-9]非数字
* [^0-9a-zA-Z_] 表示的是:特殊字符,_不算特殊字符
* $ 表示的是:以什么结束 [0-9][a-z]$ 不严格的模式,只要存在就满足====>"232word";
* ^[0-9][a-z]$ 相当于严格模式,每个字符只能出现一次====>"2b"
* ^[0-9][a-z] 只限定了前面====>"2f234word"
* \d 表示的是:数字中的任意一个,相当于[0-9]
* \D 表示的是:非数字中的任意一个
* \s 表示的是:空白符中的任意一个(空格/tab键)
* \S 表示的是:非空白符中的任意一个
* \w 表示的是:非特殊符号中的任意一个
* \W 表示对是:特殊符号中的任意一个
正则表达式练习
* 根据字符串写正则表达式进行匹配
* 经验:1.找规律;2.不要追求完美
*
* 身份证的正则表达式:15位或者18位
* ([1-9][0-9]{
14})|([1-9][0-9]{
16}[0-9xX])
* [1-9][0-9]{
14}([0-9]{
2}[0-9xX])?
*
* 座机号码的正则表达式010-19957435 0431-46436581
* [0-9]{
3,4}[-][0-9]{
8}
* \d{
3,4}[-]\d{
8}
*
* QQ号码的正则表达式
* [1-9][