zoukankan      html  css  js  c++  java
  • 正则表达式的语法和使用说明

    正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
    许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
     
    如何学习正则?1、学习正则表达式的语法规则2、练习使用正则并能解决实际问题。学习正则表达式语法,主要就是学习元字符以及它们在正则表达式上下文中的行为。为了便于理解,文章所有示例的正则表达式用“regex=正则”表示,“=”号后面就是正则表达式,匹配到的字符会用颜色标注出来,连续匹配到的字符用一深一浅两种颜色区分。比如:regex=d+,其中d+就是一个正则,它匹配任意多于1个的数字,如:
     

     

    标准字符集合:标准字符集合是能够与“多种普通字符”匹配的简单表达式,比如:d、w、s匹配数字0到9的任意数字可以regex=[0-9]也可以regex=d标准字符集要注意区分大小写,大写是相反的意思regex=D,则匹配非数字字符,即不能匹配数字0到9,如下:

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    限定字符(量词)限定字符又叫量词,是用于表示匹配的字符数量的。匹配任意1位数字可以regex=d匹配任意2位数字可以regex=dd匹配任意3位数字可以regex=ddd匹配任意16位数字,再这么写就有点傻了这里引入用于表示数量限定字符“{n}”“{n}”,n是一个非负整数,匹配确定的n次注意:regex=dd{3}匹配任意4个数字不是6个,量词只对它前面的字符负责,regex=dd{3}匹配的内容如下:

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    下面是一些常用的限定字符说明

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    定位字符(字符边界)

    定位字符也叫字符边界,标记匹配的不是字符而是符合某种条件的位置,所以定位字符是“零宽的”。

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    “”匹配这样一个位置:前面的字符和后面的字符不全是w

    如果在“hello,hello1 hello hello1 bhello”这个字符串里匹配regex=hello,

    匹配到的结果如下:

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    除小数点“.”外,标准字符集合包含在方括号中,仍然表示集合范围。

    regex=[d.+]匹配0-9的任意一个数字或者小数点“.”或者加号“+”

    也就是说d在自定义集合中仍然表示数字,但是小数点在字符集合中只表示小数点本身,而不是除“ ”之外的任何单个字符

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    括号中的表达式匹配到的内容会存储起来,并可以获取到括号中表达式匹配到的内容3、每一对括号会分配一个编号,使用( )的捕获根据左括号的顺序从1开始自动编号,编号为0的捕获是整个正则表达式匹配到的文本。捕获组( )可以把匹配的内容存储起来,那么如何获取( )捕获到的内容呢,下面介绍反向引用。反向引用“
    umber”每一对括号会分配一个编号,使用( )的捕获根据左括号的顺序从1开始自动编号。通过反向引用,可以对分组已捕获的字符串进行引用。“
    umber”中的number就是组号regex=(abc)d可以匹配字符串abcdabc,即表示把获取到的第一组再匹配一次,如下:

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    regex=love (?!story)匹配的结果如下(匹配“love ”后面不能是story):

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全

    如果想匹配“room”或“loom”,请用括号创建子表达式,regex=(r|l)oom,如下:

    程序员用一小时带你彻底掌握正则表达式!学不会就用来祭天!最全至此,正则表达式的语法介绍完了。

  • 相关阅读:
    《敏捷软件需求》阅读笔记三
    《敏捷软件需求》阅读笔记二
    《敏捷软件需求》阅读笔记一
    《需求工程-软件建模与分析》阅读笔记三
    《需求工程-软件建模与分析》阅读笔记二
    《需求工程-软件建模与分析》阅读笔记一
    C#.NET程序设计实验三实验报告
    C#.NET程序设计实验二实验报告
    C#.NET程序设计实验一实验报告
    oracle——存储数据时的编码问题
  • 原文地址:https://www.cnblogs.com/guoxiangyue/p/8378790.html
Copyright © 2011-2022 走看看