正则表达式:
强大灵活的文本处理工具
语法:
普通字符
转义字符 \ , \t , \n , \\
标准字符集合(大写代表相反的意思)
\d 任意一个数字
\w 任意一个字母、数字、下划线
\s 空白符,包括空格、制表符、换行符中的任意一个
. 匹配任意一个字符
自定义字符集合:
[abc] 匹配abc中任意一个
[^abc] 除了abc之外其他的字符
[1-8] 匹配1-8只中的任意一个
修饰匹配次数的特殊字符
\d{10} 匹配10位数字 即匹配10次 {10}前面的全部匹配
\d{2,4} 至少2次,最多4次
\d{2,} 至少2次,最多不限
\d+ 匹配一个数字至少一次 +同{1,}
\d* 匹配一个数字0次以上 *同{0,}
\d? 匹配一个数字0次或1次 ?同{0,1}
匹配次数的模式
贪婪模式:匹配次数越多越好,默认为贪婪模式
非贪婪模式: 匹配次数越少越好
用法:在修饰次数后面加一个问号
如: \d+? 只匹配一次
匹配模式
ignore case 忽略大小写
singleline 单行模式(被匹配的对象被当做一个字符串)
multiline 多行模式
字符边界(匹配位置)
^ 与字符串开始的地方匹配
$ 与字符串结尾的地方匹配
\b 匹配一个单词边界 即左右两边不全匹配\w
选择符和分组
() 括号内的作为一个整体来修饰匹配次数
| 或,()|() 不加或即为与的关系
反向引用
\n 每一个括号都会分配一个编号,从1开始 。\1表示第一个括号的内容重复匹配
预搜索(匹培位置)零宽断言
(?=exp) 后面是表达式exp匹配的内容 (?!exp) 后面不能是表达式exp匹配的内容
(?<=exp) 前面是表达式exp匹配的内容 (?<!exp) 前面不能是表达式exp匹配的内容