正则表达式的特点是:
- 灵活性、逻辑性和功能性非常强;
- 可以迅速地用极简单的方式达到字符串的复杂控制。
- 对于刚接触的人来说,比较晦涩难懂。
使用“一串数字”来描述有共同属性的数据
基本元字符:
行首尾及单子匹配
^ 匹配行首 \\^abc 以abc开头的行
$ 匹配行尾
· 匹配单个字符 除换行符(\n)以外的任意单个字符
未定匹配次数
+ 最少匹配一次 \\(abc)+ 一个或多个连续的abc
? 最多匹配一次 0个或一个
* 匹配任意次数 0个或多个
·* 任意长度的任意字符串
限定次数匹配:
{n} 匹配n次 \\(ab){3} 匹配 ababab
{n,m} 匹配n-m次 \\(ab){1,3} 匹配 ab,abab,ababab
{n,} 匹配至少n次
其他元字符:
[] 范围内替换
* 匹配指定字符集合内的任何一个字符
[^] 列表范围取反
[^0-9] 表示匹配非数字
[cla45_?] 匹配 c l a 4 5 _ ?
[a-z] 匹配所有小写字母
^[^a-z] 匹配不以小写字母开头的行
匹配字符:
\n 换行符
\r 匹配一个回车符。
\s 匹配任何不可见字符,包括空格、制表符、换页符等等。
\S 匹配任何可见字符。
\t 匹配一个制表符。
\v 匹配一个垂直制表符。
\w 匹配包括下划线的任何单词字符。
\W 匹配任何非单词字符。
整体及边界匹配:
() 组合为整体
| 或者 root|bin root bin
\b 单词边界 \broot\b root
\< 单词的开头 \<th 匹配以th开头的单词
\> 单词的结束 \<root\>
\ 转义一个特殊字符
只能输入汉字 "^[\u4e00-\u9fa5]{0,}$"