`
mywebcode
  • 浏览: 1001207 次
文章分类
社区版块
存档分类
最新评论

正则表达式基础知识

 
阅读更多
正则表达式有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结束的字符,等同于【alpha\Z】

javascript 不支持 \A



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



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

非边界匹配:在字符串前后加上【\B】标签,它的意义与【\b】标签意义相反。
eg: 表达式【\Bcat\B】只会匹配【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, Jane, and Sue went o Mary's house】匹配到Mary, 接下来就会在剩余的字符串【, Jane, and Sue went o Mary's house】查找【Mary|Jane|Sue】的匹配结果。



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

相关推荐

    正则表达式的基础知识!

    正则表达式基础知识!!! 我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则表达式就是“cat”。如果搜索对大小写不敏感,单词“catalog”、“Catherine”、“sophisticated”都可以匹配...

    正则表达式 基础知识 一张纸

    将正则表达式的基础知识浓缩到一张纸上,超实用~

    C#正则表达式基础知识

    C#正则表达式基础知识(经典归纳简单易懂

    javascript正则表达式基础知识入门.docx

    javascript正则表达式基础知识入门.docx

    正则表达式的基础知识

    正则表达式基础知识,对于初学者不错的指导。

    正则表达式基础知识与常用类型

    正则表达式基础知识, 1.1 句点符号 1.2 方括号符号 1.3 “或”符号 1.4 表示匹配次数的符号 二、Jakarta-ORO库 。。。。。。。。。。。。。

    vba正则表达式基础

    vba正则表达式基础知识介绍,由浅入深,实例讲解

    ASP.NET 中的正则表达式

    本文介绍了深入学习正则表达式的基础知识和推荐内容。 本文主要面向对正则表达式知之甚少或没有使用经验,但却熟悉 ASP.NET、可借助 .NET 编程的初学者。此外,希望本文连同 regular expression cheat sheet 成为有...

    PHP正则表达式基础知识

    学习正则表达式,菜鸟必看。如果你想学习正则,请进来看看吧!

    正则表达式支持库2.0#0版(静态版)

    注意,本支持库中的所有命令均为高级命令,要求使用者具有一定的正则表达式知识基础。易语言RegEx_static.lib支持库为易语言静态支持库,需要易语言系统5.0版本的支持,需要易语言系统核心支持库5.0版本的支持,提供...

    js正则表达式详解

    包含js正则表达式基础知识、Jakarta-ORO库和一些HTML应用实例

    正则表达式完整高清版

    全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍...

    正则表达式支持库2.0#0版

    注意,本支持库中的所有命令均为高级命令,要求使用者具有一定的正则表达式知识基础。易语言RegEx.fnr,RegEx.fne支持库为一般支持库,需要易语言系统3.8版本的支持,需要易语言系统核心支持库3.7版本的支持,提供了2...

    正则表达式_正则表达式_源码

    正则表达式基础知识梳理以及归纳,欢迎下载

    Python 正则表达式入门(初级篇)

    首先说 正则表达式是什么? 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式...

    详细的C#正则表达式基础教程

    C# 正则表达式的用法,包含c#中正则表达式的基本知识和实例运用

    正则表达式支持库1.2版

    正则表达式支持库1.2版 该支持库实现了对正则表达式(Regular Expression)的支持。注意,本支持库中的所有命令均为高级命令,要求使用者具有一定的正则表达式知识基础。 操作系统支持: Windows、Linux、Unix

Global site tag (gtag.js) - Google Analytics