正则

正则
 
正则测试网址  :http://tool.chinaz.com/regex
正则表达式只和字符串打交道
字符组 : [] 写在中括号中的内容,都会被匹配,顺序一定从小到大
[0-9]  匹配数字
[a-z]  匹配小写字母
[A-Z]  匹配大写字母
[8-9]   批配8-9的数字
[a-zA-Z] 匹配大小写字母
[a-zA-Z0-9] 匹配大小写字母+数字
[a-zA-Z0-9_] 匹配数字字母下滑线、
[1-6b-f_]    匹配1-6 b-f _  字符组可以写任一范围
有一些有特殊意义的元字符进入字符组中会回复它本来的意义 :  量词 和 .   |    [ ]   ( )   在里边也加转义符,不然[]成对出现会匹配不到  字符组里面的
 
转义符 \     如果想得到一个\ 就要进行转义 \\
注意   \\w   表示匹配 \w 字符无特殊意义
          \\\w  也表示 \w 单个\是无意义的
 
元字符
\w  匹配数字字母下划线 word关键字[0-9a-zA-Z_]
\d   匹配所有数字  关键字digit [0-9]
\s    匹配所有 空格 \t  \n/回车 关键字space  [ \t\n]
      #匹配换行符\n
     #匹配制表符\t
      #匹配 空格 ' '
\W 匹配非数字字母下划线
\D  匹配非数字
\S   匹配非空格 tab 回车
\b   表示单词边界  每一个' '空格表示一个单词    使用时可判断单词以。。开头 以。。结尾
放在后面表示以这个数据结尾
和转义字母数字相关的 元字符
\w \d \s \b \W \S \D
 
^匹配一个字符串的开始   
$匹配一个字符串的结束      这两个符号请注意 他会认为整个字符串都是一个整体' '空格不代表下一个字符串 不同于\b
. 表示匹配除换行符的所有单个字符
[^] 出现在【】里的都不会被匹配(匹配不出现的)
 
a|b 或
        符合a规则的或者b规则的都可以被匹配
       如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
       将更复杂的\更长的规则写在最前面
() 分组
表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
 
量词
{n}  表示 这个量词之前的字符出现n次
{n,} 表示这个量词之前的字符至少出现n次
{n,m} 表示这个量词之前的字符出现n-m次
?   表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无 默认贪婪/量词? 惰性匹配
+   表示匹配量词之前的字符出现 1次 或者 多次
*    表示匹配量词之前的字符出现 0次 或者 多次
 
正则小结
元字符 : \d \w \s \n \t \b \W \D \S . ^ $ [] [^] | ()
量词 : ? + * {n} {n,} {n,m}
贪婪匹配/惰性匹配   :   默认贪婪(因为回溯算法)/量词? 惰性匹配
普通字符就表示一个正常的字符
元字符表示它特殊的意义 如果转义元字符,那么这个元字符就失去了特殊意义
 
几个字符的组合关系
字符/元字符 只约束一个字符
字符+量词 约束一个字符连续出现的次数
字符+量词+?   约束一个字符连续出现的最少次数,非贪婪模式语法
       字符+量词+?+x 约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止
非贪婪匹配没有单用的

posted on 2018-08-16 22:09  _王晓东  阅读(183)  评论(0编辑  收藏  举报

导航