写点什么

正则表达式 -- 只求能看懂别人写的正则表达式是什么意思

  • 2021 年 11 月 12 日
  • 本文字数:1012 字

    阅读完需:约 3 分钟

| 字符 | 描述 |


| --- | --- |


| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\’ 匹配 “” 而 “(” 则匹配 “(”。 |


| ^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 |


| 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。 |


| + | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |


| * | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |


| ? | 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 或 “does” 。? 等价于 {0,1}。 |


| {n} | n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o |


| {n,} | n 是一个非负整数。至少匹配 n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。 |


| {n,m} | m 和 n 均为非负整数,其中 n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。 |


| x | y | 匹配 x 或 y。例如,‘z |food’ 能匹配 “z” 或 “food”。’(z |f)ood’ 则匹配 “zood” 或 “food”。 |


| [abc] | 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。 |


不常见的元字符




运算符优先级

正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。


相同优先级的从左到右进行运算,不同优先级的运算先高后低。下图从最高到最低说明了各种正则表达式运算符的优先级顺序:


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190219143709957.png?x-oss-process=image/watermark,type_ZmFuZ3


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NzkwMDEx,size_16,color_FFFFFF,t_70)


实例:


^[1-9]d*$    //匹配正整数


^-[1-9]d*$   //匹配负整数

评论

发布
暂无评论
正则表达式--只求能看懂别人写的正则表达式是什么意思