正则表达式使用场景
-
测试字符串内的模式
例如,数据验证:测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式 -
替换文本
识别文档中的特定文本,完全删除该文本或用其他文本替换它 -
基于模式匹配从字符串中提取子字符串
查找文档内或输入域内特定的文本
正则表达式详细学习资料见链接
https://juejin.im/post/5965943ff265da6c30653879
范围表示法
用连字符 - 表示省略和简写
例如: [1234567abcdefGHIJKLM] 可写成 [1-7a-fG-M]
如果要匹配"a"、"-"、"z"这三个字符中的任意一个字符不能写成[a-z](表示小写字符中的任意一个字符),要写成:[-az] 或 [az-] 或 [a-z],- 要么放在开头,要么放在结尾,要么转义,不要让引擎认为是范围表示法
排除字符组
字符组的第一位 ^ (脱字符)表示求反。例如,[^abc] 表示一个除"a"、“b”、"c"之外的任意一个字符
常见字符组的简写
简写 | 含义 |
---|---|
\d | [0-9],表示一位数字 |
\D | [^0-9],表示除数字外的任意字符 |
\w | [0-9a-zA-Z_],表示数字、大小写字母及下划线(单词字符) |
\W | [^0-9a-zA-Z_],表示非单词字符 |
\s | [ \t\v\n\r\f],表示空白符(空格、水平制表符、垂直制表符、换行符、回车符、换页符) |
\S | [^ \t\v\n\r\f],表示非空白符 |
. | [^\n\r\u2028\u2029],通配符,表示几乎任意字符,换行符、回车符、行分割符和段分隔符除外 |
如要匹配任意字符,可使用 [\d\D]、[\w\W]、[\s\S]、[^]
量词
简写 | 含义 |
---|---|
{m,} | 表示至少出现m次 |
{m} | {m,m},表示出现m次 |
? | {0,1},表示出现或不出现 |
+ | {1,},表示出现至少一次 |
* | {0,},表示出现任意次,有可能不出现 |
匹配与分支
/d{2,5}/,表示数字连续出现2-5次,会匹配2位、3位、4位、5位连续数字。会尽可能多的匹配,为贪婪匹配;如果需要匹配尽可能少的位数需要在量词后加 ? 惰性匹配
多选分支 (p1|p2|p3),表示其中任意一个模式,其中p1、p2、p3为子模式,|为管道符;分支结构默认为 惰性匹配