加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式基础知识

发布时间:2020-12-13 23:12:11 所属栏目:百科 来源:网络整理
导读:正则表达式有12个元字符:【$()*+.?[^{|】 如果不包含这12个字符,就说不上是正则表达式。另外 “]” 和 “}” 也算是元字符。 在正则表达式中,要匹配这12个元字符,有两种方法 ""进行转义。例如: 【$()*+.?[^{|】 用Q和E标签。 例如 【
正则表达式有12个元字符:【$()*+.?[^{|】
如果不包含这12个字符,就说不上是正则表达式。另外 “]” 和 “}” 也算是元字符。


在正则表达式中,要匹配这12个元字符,有两种方法
  • ""进行转义。例如: 【$()*+.?[^{|】
  • 用<Q>和<E>标签。 例如 【Q...E】 就等同于 【...】,能够匹配 【...】。不过只有 Perl、PCRE、Java6支持Q 和 E 标签



大小写不敏感匹配:在字符串前后分别加上【(?i)】【(?-i)】
eg: 表达式【sensitive(?i)caseless(?-i) sensitive】能够匹配字符串【sensitiveCaseLESSsensitive



匹配多个字符中的一个:用【[]】
eg:表达式【[0-9]】就可以匹配到0到9之间的所有的数字。
表达式【[^0-9]】可以匹配出不属于0到9之间字符

通过连接符【-】设置指定的范围,【-】前面的字符和后面的字符构成一个区间,该区间范围是根据ASCII字符表或者Unicode 字符表设定的。



  • 【d】匹配所有数字机相当于【[0-9]】
  • 【D】匹配所有的非数字,相当于【[^d]】
  • 【w】匹配一个的单词字符,相当于【[a-zA-Z0-9_]】
  • 【W】是【w】的补集
  • 【s】匹配任意whitespace。包括:space/tab/line break
  • 【S】匹配【s】的补集



匹配以某字符串开始的字符串:在开始字符串钱加上【^】或者【A】
eg:【^alpha】匹配以alpha开始的字符串,等同于【Aalpha】

匹配以某字符串结束的字符串:在结束字符后加上【$】或者【Z】
eg:【alpha$】匹配以alpha结束的字符,等同于【alphaZ】

javascript 不支持 A



开启多行模式:在字符串前加上【(?m)】



边界匹配:在字符串前后加上【b】标签,则只能匹配到b之间的字符。
eg:表达式【bcatb】只会匹配【cat】不会匹配到【category】
表达式【bcat】只会匹配以【cat】开始的字符串,等同于【^cat】标签。

非边界匹配:在字符串前后加上【B】标签,它的意义与【b】标签意义相反。
eg: 表达式【BcatB】只会匹配【cat】前后还有 其他单词字符的字符串。不能匹配【cate】/【ecat】/【my cat is】,只能匹配到【ecate】这样的字符串。



匹配几个字符串中的一个:在字符串间加上【|】。
eg: 当你用正则表达式【Mary|Jane|Sue】查找字符串【Mary,Jane,and Sue went o Mary's house】,第一次找到的是Mary,查找下一个是Jane,然后会是Sue,最后是Mary。
解释一下:【|】的效果是在目标字符串中查找用【|】连接的字符串,找到一个后,就在剩余的字符串中再继续查找。
首先会在 【Mary,and Sue went o Mary's house】匹配到Mary,接下来就会在剩余的字符串【,and Sue went o Mary's house】查找【Mary|Jane|Sue】的匹配结果。



再次匹配之前匹配的字符串:
eg: 要匹配形如日期表示字符串【2008-08-08】,就是年份的后两位、月份、日子这三个数字相同。
正则表达式:【dd(dd)-1-1】
能够匹配得字符串:2008-08-08/ 2007-07-07
解释:在正则表达式中,()内的匹配结果作为一个group,第一个()匹配的结果是group1, 第二个()匹配的结果是group2, 以此类推。在正则表达式后可以用【"" + 数字】 的形式表示匹配对应的group。例如【1】表示匹配group1, 【2】表示匹配group2,以此类推。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读