正则学习
正则学习
语法
元字符
| 符号 | 说明 | 
|---|---|
| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符 | 
| . | 匹配除换行符以外的任意字符 | 
| \w | 匹配字母或数字或下划线 | 
| \W | 匹配任意不是字母,数字,下划线,汉字的字符 | 
| \s | 匹配任意的空白符 | 
| \S | 匹配任意不是空白符的字符 | 
| \d | 匹配数字 | 
| \D | 匹配任意非数字的字符 | 
| [abc] or [a-c] | 匹配括号内的任意字符 | 
| [^abc] or [^a-c] | 匹配除了括号内的字符以外的任意字符 | 
| \f | 匹配一个换页符 | 
| \n | 匹配一个换行符 | 
| \r | 匹配一个回车符 | 
| \t | 匹配一个制表符 | 
| \v | 匹配一个垂直制表符 | 
限定符
| 符号 | 说明 | 
|---|---|
| * | 重复零次或更多次 | 
| + | 重复一次或更多次 | 
| ? | 重复零次或一次 | 
| {n} | 重复n次 | 
| {n,} | 重复n次或更多次 | 
| {n,m} | 重复n到m次 | 
定位符
| 符号 | 说明 | 
|---|---|
| \b | 匹配单词的开始或结束 | 
| \B | 匹配不是单词开头或结束的位置 | 
| ^ | 匹配字符串的开始 | 
| $ | 匹配字符串的结束 | 
修饰符
| 符号 | 说明 | 
|---|---|
| i | 忽略大小写 | 
| g | 全局匹配,查找所有的匹配项 | 
| m | 多行匹配,使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾 | 
| s | 默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n | 
运算符优先级
| 符号 | 说明 | 
|---|---|
| \ | 转义符 | 
| (), (?:), (?=), [] | 圆括号和方括号 | 
| *, +, ?, {n}, {n,}, {n,m} | 限定符 | 
| ^, $, \任何元字符及任何字符 | 定位点和序列(即:位置和顺序) | 
| | | 替换,”或”操作,字符具有高于替换运算符的优先级,使得”m|food”匹配”m”或”food”。若要匹配”mood”或”food”,请使用括号创建子表达式,从而产生”(m|f)ood” | 
示例
匹配版本号
^\d+(.\d+){2}$
匹配中文
^[\u4e00-\u9fa5]$
匹配图片链接
^(http|https)://(.+/)+.+(.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$
匹配手机号
^1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$
匹配身份证号
^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$
匹配邮箱
^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
匹配Mac地址
[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}
匹配指定文本
### 1.
### 1.1
### 1.3.4
^###\s(\d+.){1,2}(\d+|)$
匹配并替换指定文本

(\w*\.?\w*(\(\)){0,})\s?==(\s\w*\.?\w*(\(\)){0,})StrUtil.equals($1,$3)