zoukankan      html  css  js  c++  java
  • 正则表达式的复习

    一个正则表达式主要由以下几部分组成的:原子,元字符,定界符,模式修正符号

    如:”/\<img\s*src=\".*?\"\/\>/iu”

    原子: ims \s

    元字符:* ?

    模式修正符号: i u

    定界符号:/ /

    注意:

    ①     定界符:除了字母,数字和正斜线\以外的任何字符都可以是定界符号,如# #,| |,{ }等

    ②     元字符:是一种特殊的字符,是用来修饰原子用到,不可以单独出现

    +:表示重复匹配其前面的原子一次或多次

    ?:表示重复匹配其前面的原子0次或一次

    *:表示重复匹配其前面的原子0次或多次

    {}:可以自定义前面原子出现的次数:

    {n}表示重复匹配其前面的原子n次

    {n,m}表示重复匹配其前面的原子n到m次,包括n和m

    {n,}表示重复匹配其前面的原子n次或无限次

    . :匹配除换行符以外的任意字符

    ^:匹配字符串的开始

    $:匹配字符处的结束

    |:表示或的关系,它的优先级别是最低的,最后考虑他的功能

    \b:匹配单词的分解处,单词是由空格,标点符号或者换行符来分隔的

    \B:匹配不是单词开头或结束的位置,如:/\Bone\b/ 表示one的左边不是边界,one的右边是单词边界(如空格,标点符号或换行符)

    ():重点

           一:作为大原子使用:如/(test)+/ 表示匹配单词test至少一次

           二:改变优先级,加上括号可以提高优先级

           三:作为子模式使用

           四:反向引用,可以在正则模式中直接将子模式取出来,作为正则表达式模式的一部分,如果是在正则表达式像替换函数preg_replace函数中,可以将子模式去除,在被替换的字符串中使用。

    \1:取第一个子模式

    \n:取第n个子模式

    注意:单双引号的区别,如”\\1”等价于‘\1’

    ③     原子:原子是正则表达式的最基本的组成单位,而且必须至少要包含一个原子,只要一个正则表达式可以单独使用的字符,就是原子

    a)         元字符如果想做为原子使用,则必须使用转义字符“\”进行转义,如:\.,\*,\?等等

    b)        转义字符除了可以将有意义的字符转成没意义的字符,还可以将没意义的字符转成有意义的字符,如:

    \d ,\w,\s等等

    .

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

    \w

    匹配字母或数字或下划线或汉字  [A-Za-z0-9_]

    \s

    匹配任意的空白符 如:空格,\n\r\t\f等等

    \d

    匹配数字  [0-9]

    \b

    匹配单词的开始或结束

    ^

    匹配字符串的开始

    $

    匹配字符串的结束

    c)         可以自己定义一个原子表,用来匹配方括号中的任意一个原子

    [a-z1-3]

    [^A-Z]表示取反,用来匹配除了原子表中的原子意外的字符(^必须在[ ]内的第一个字符处出现),而且取反字符集可以匹配回车换行符

  • 相关阅读:
    Suricata, to 10Gbps and beyond(X86架构)
    golang语法学习(一):变量,常量以及数据类型
    Linux相关问题-CentOS6.5 x64版本号下Tomcat无法自启动的解决的方法
    软考之路--你存在我深深的脑海里
    Apache虚拟主机-解惑篇
    Apache 性能调优-参考篇
    Jmeter脚本录制
    整理LVS架构压力测试工作
    关于jboss的线程问题+java.lang.outofmemoryError
    CUDA入门
  • 原文地址:https://www.cnblogs.com/hongfei/p/2559222.html
Copyright © 2011-2022 走看看