美文网首页
正则表达式

正则表达式

作者: 即墨雨 | 来源:发表于2017-11-02 18:30 被阅读30次

       正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。


一、元字符

1、点号(.)

      可以匹配除了换行符以外的任意字符。

2、反斜线(\)

      在任何元字符前加上反斜线,就会使它失去元字符的特殊作用。所以,如果要匹配反斜线,就要用两个反斜线表示。

  eg:/3\.14159/模式里的点号就不是通配符的元字符了。

  eg:匹配反斜线   /\\/


二、简单的量词

1、星号(*)

     用来匹配前面的条目零次或多次。

eg:  .* 匹配任意字符零次到无限次。

2、加号(+)

     匹配前一个条目一次以上。

3、问号(?)

     匹配前一个条目是可有可无的,前一个条目可以出现一次或者不出现。

eg:/bamm-?bamm/ 只能匹配两种情况:bamm-bamm 或 bammbamm

4、{}

     指定具体的重复次数。

/a{5,15} / 可匹配重复出现5到15次的字母 a。

/(fred){3,}/ 可匹配次数3次及以上fred。

/\w{8}/ 会匹配正好有8个单词字符的字符串。



三、模式分组

1、()的作用是对字符串分组。

eg:模式 /fred+/ 会匹配像 fredd、freddd 等这样的字符串。

        模式  /(fred)+/ 会匹配像 fredfred、fredfredfred 等这样的字符串。

2、捕获组:用反向引用来引用圆括号中的模式所匹配的文字。

3、反向引用:在反斜线的后面接上数字编号,如:\1、\2 。相应的数字表示对应顺序的捕获组。

eg:可以用反向引用 \1 来再次匹配刚刚在圆括号中匹配的任意字符。

       $_ = 'abba' ;

       if( /(.)\1/ ){               #匹配'bb'

             print " It matched same character next to itself!\n";

        }

       (.)\1 表示需要匹配连续出现的两个相同的字符。

eg:$_ = "yabba  dabba  doo";

       if( /y(.)(.)\2\1/) {   #匹配 'abba'

             print " It matched after the y!\n ";

         } 

4、用\g{N}来表示反向引用写法,其中N是想要反向引用的组号。


四、择一匹配

1、竖线(|)

     通常可以读成“或”,意思是要么匹配左边的内容,要么匹配右边的内容。

eg:/fred|barney|betty/ 可以匹配任何含有 fred 或 barney 或 betty 的字符串

       /fred( |\t)+barney/  匹配fred和barney之间出现一次以上空格、制表符或者两者混合的字符串。

2、字符集

     指的是一组可能出现的字符,通过写在方括号([])内表示,它只匹配单个字符,但可以是字符集中列出的任何一个。

eg:[a-zA-Z]  可以匹配52个大小写字母中的任何一个。

3、脱字符 (^)

    在字符集开头的地方加上脱字符^,来表示这些字符除外。

eg:[^def]  会匹配这三个字符以外的任何字符。

   注:^字符放在不同的位置,有不同的作用。

        ^在[]内代表“反向选择”,出现在[]外面表示匹配字符串开头。

eg:^[the] 表示匹配的字符串开头是the。


五、字符集的简写

1、\d:表示任意一个数字的字符集的简写。

      \D:即 [^\d],表示匹配非数字字符。

eg:^\d{5,12}$   表示这一行只能出现5到12位的数字。

$ 表示匹配字符串的结束。

2、\s:表示匹配任意空白符

     \S:即[^\s],表示非空白符。

3、\w:表示匹配 [a-z A-Z 0-9 _] 字母、数字、下划线。

     \W:即 [^\w],表示匹配非单词字符。

4、\b:单词边界锚位,表示匹配任何单词的首位。

eg:/\b fred \b/ 表示只能匹配 fred

/\b hunt/ 表示匹配 hunt、hunting 或 hunter

5、\B:非单词边界锚位

eg:/\b search\B/ 会匹配serches、serching和serched。不匹配search、researching。

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/wcfaqxtx.html