正则

正则
 
正则测试网址  :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    匹配所有 空格   /回车 关键字space  [ ]
      #匹配换行符
     #匹配制表符
      #匹配 空格 ' '
W 匹配非数字字母下划线
D  匹配非数字
S   匹配非空格 tab 回车
   表示单词边界  每一个' '空格表示一个单词    使用时可判断单词以。。开头 以。。结尾
放在后面表示以这个数据结尾
和转义字母数字相关的 元字符
w d s  W S D
 
^匹配一个字符串的开始   
$匹配一个字符串的结束      这两个符号请注意 他会认为整个字符串都是一个整体' '空格不代表下一个字符串 不同于
. 表示匹配除换行符的所有单个字符
[^] 出现在【】里的都不会被匹配(匹配不出现的)
 
a|b 或
        符合a规则的或者b规则的都可以被匹配
       如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
       将更复杂的更长的规则写在最前面
() 分组
表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
 
量词
{n}  表示 这个量词之前的字符出现n次
{n,} 表示这个量词之前的字符至少出现n次
{n,m} 表示这个量词之前的字符出现n-m次
?   表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无 默认贪婪/量词? 惰性匹配
+   表示匹配量词之前的字符出现 1次 或者 多次
*    表示匹配量词之前的字符出现 0次 或者 多次
 
正则小结
元字符 : d w s  W D S . ^ $ [] [^] | ()
量词 : ? + * {n} {n,} {n,m}
贪婪匹配/惰性匹配   :   默认贪婪(因为回溯算法)/量词? 惰性匹配
普通字符就表示一个正常的字符
元字符表示它特殊的意义 如果转义元字符,那么这个元字符就失去了特殊意义
 
几个字符的组合关系
字符/元字符 只约束一个字符
字符+量词 约束一个字符连续出现的次数
字符+量词+?   约束一个字符连续出现的最少次数,非贪婪模式语法
       字符+量词+?+x 约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止
非贪婪匹配没有单用的
原文地址:https://www.cnblogs.com/Mr-wangxd/p/9490448.html