zoukankan      html  css  js  c++  java
  • 正则表达式日记

    一、界定符

    表示一个正则表达式的开始和结束

    (1)//
    (2)##
    (3){}
    例:'/[0-9]/'

    二、原子

    正则表达式中的最小匹配单位,通常它只是Unicode编码表中的某个字符
    (1)可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
    例:
    标点
    英文字母数字
    汉字、日文、阿拉伯文等其他语言文字
    数理化公式符号
    其他可见字符
    (2)不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符
    例:
    换行符
    回车
    制表符
    空格
    其他不可见符号
    patten中若有中文汉字,建议换成unicode编码

    三、元字符

    (1)定义原子的筛选方式
    (2)把某一类原子,比较类似的原子(英文字母abcd和数字1234)进行归类,给出一个缩写来简化正则表达式的书写方式。

    1、原子的筛选方式
    (1)[] :匹配出现在[]中的任意一个原子
    (2)| :或运算。匹配|符号左右两边的任意一个
    (3)[^ ] :取反。这里^必须和[紧挨着,才表示匹配除了[]里面任意原子的字符
    注:[78^9]表示匹配,7、8、^、9任意一个
    (4). :任意字符(除换行符外)

    2、原子的集合
    . 匹配出了换行符之外的任意字符
    (1)d 匹配任意一个十进制数字,即 [0-9]
    (2)D 匹配任意一个非十进制的数字,即 [^0-9]
    (3)s 匹配一个不可见原子,即 [f v]
    (4)S 匹配一个可见原子,即[^f v]
    (5)w 匹配任意一个数字、字母或下划线,即 [0-9a-zA-Z_]
    (6)W 匹配任意一个非数字、字母或下划线,即 [^0-9a-zA-Z_]

    四、量词

    (1){n} 表示其前面的原子恰好出现n次。
    (2){n,} 表示其前面的原子最少出现n次。
    (3){n,m} 表示其前面的原子最少出现n次,最多出现m次。
    (4)* 匹配0次,1次,多次其前面的原子,即{0,}。
    (5)+ 匹配1次,多次其前面的原子,即{1,}。
    (6)? 匹配0次,1次其前面的原子,即{0,1}。

    五、边界控制

    (1)^ :匹配字符串开始的位置 ^string:只能匹配一开始就为string字符串,不能有空格
    (2)$ :匹配字符串结尾的位置

    六、模式单元

    () 括号的整体为一个原子

    七、修正模式

    标识:在正则表达式的末尾,也就是斜杠(/)的后面,加修正模式的标识
    (1)u :贪婪匹配,匹配结果存在歧义时,匹配结果越多越好。默认是贪婪模式。
    例:'/[a-zA-Z0-9]+/'
    (2)U :懒惰匹配,匹配结果存在歧义时,匹配结果越少越好。
    例:'/[a-zA-Z0-9]+/U' 
    (3)i :忽略英文字母大小写
    (4)x :忽略空白
    (5)s :让元字符“.”匹配包括换行符在内的所有字符

    八、实例

    (1)非空:.+
    (2)浮点:小数点后两位:d+.d{2}$
    (3)手机:^1[358]d{9}$
    (4)邮箱:^w+(.w+)*@w+(.w+)+$
    (5)URL:^(https?://)?(w+.)+[a-zA-Z]+$

    正则检测工具:http://tool.chinaz.com/regex/

  • 相关阅读:
    提升Android编译速度
    NYOJ 158 省赛来了
    浅谈 ZipArchive 类
    块状元素的text-align对齐属性
    BestCoder Round #2 1001 TIANKENG’s restaurant
    Saltstack运行cmd.run重新启动tomcat后出现日志乱码(15)
    【HRS项目】Axure兴许问题解决---与SVN结合
    软件质量之道:PCLint之中的一个
    字典树 一种高速插入查询数据结构
    【JS】JavaScript引擎的内部执行机制
  • 原文地址:https://www.cnblogs.com/quanzhiguo/p/7158004.html
Copyright © 2011-2022 走看看