正则表达式学习(2)
        
        
            断言
即对匹配到的文本位置有要求
- 单词边界
\b
例:\b\w+\b就可以精确匹配单词 - 行的开始/结束
^表示开始$表示结尾
 - 环视
即要求匹配部分的前面或后面要满足(或不满足)某种规则

左尖括号代表看左边,没有尖括号是看右边,感叹号是非的意思 
转义
- 转义字符

 - 字符串转义和正则转义
- 正则中是使用反斜杠进行转义的 例:
\\d - 括号转义 
[]和{}只需转义开括号,()两个都需要 例:\{1,3}\[]\(\) 
 - 正则中是使用反斜杠进行转义的 例:
 
常见正则问题和解决方案
- 匹配数字
- 用
\d或[0-9]表示 - 连续多个数字: 
\d+或[0-9]+ - n位数据: 
\d{n} - 至少n位: 
\d{n, } - m-n位: 
\d{m, n} 
 - 用
 - 匹配正数,负数和小数
- 匹配正数、负数和小数: 
[-+]?\d+(?:\.\d+)? - 非负整数(0和正整数): 
[1-9]\d*|0 - 非正整数(0和负整数): 
-[1-9]\d*|0 
 - 匹配正数、负数和小数: 
 - 浮点数
- 负浮点数: 
-\d(?:\.\d+)? - 正浮点数: 
+?(?:\d+(?:\.\d+)?|\.\d+) 
 - 负浮点数: 
 - 十六进制数: 
[0-9A-Fa-f]+ - 手机号码
- 限制前两位:
1[3-9]\d{9} - 限制前三位:
1(?:3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[1389])\d{8} 
 - 限制前两位:
 - 身份证号码
- 规则:我国的身份证号码是分两代的,第一代是 15 位,第二代是 18 位。如果是 18 位,最后一位可以是 X(或 x),两代开头都不能是 0
 - 写法:
[1-9]\d{14}(\d\d[0-9Xx]) 
 - 邮政编码(6位数字):
(?<!\d)\d{6}(?!\d) - qq号:
[1-9][0-9]{4,9} - 中文字符
- 规则:通过码值查找,中文的范围是 4E00 - 9FFF 之间
 - 写法:
[\u4E00-\u9FFF] 
 - IPv4地址:
\d{1,3}(\.\d{1,3}){3} - 日期和时间
- yyyy-mm-dd: 
\d{4}-\d{2}-\d{2} 
 - yyyy-mm-dd: 
 - 邮箱: 
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+