正则化

1.\d  代表任意一个数字  \D代表任意字母 \s 表示所有长得像空格的东西,包括换行

2.\w 代表数字,字母和下划线

3. *匹配前一个字符0或者无限次 (贪婪字符,但凡有就要一直去下去,?是有节制的) .匹配除换行符以外的所有字符  g全局匹配

4. [] 自定义正则化,每个字母代表一个值    [^ ] 取反

5. {n} 前面匹配符重复出现n次

6. +:至少匹配一次(有多少个取多少个,至少取一个)  ?:0-1次  *:0-max

7.完整匹配而不是子集,^[]表示开始匹配  $持续匹配到结束

eg: str='18312345678'; r=str.match(/1^[3589]\d{9}$/)

8.匹配特殊字符,匹配时候需要加转意符\

eg: str='153^.' ; r=str.match(/\^\./)

9.条件分支 |  ;()括号中的内容成为一个独立的内容,括号里的内容可以单独分组,单独匹配(如果不需要可以在括号前面加上?:,如果设置了^ &括号的分组功能会消失

eg: str='123.png' ; r=str.match(/.+\.(?:png|gif|jp?g)$/)

m=re.match(r'(\w+)  (\w+)(?P<sign>.*)', 'hello world')

#分组功能(...)*\1  其中\1表示的就是前面括号中的字母或数字,例如barbar, allohall都满足这个正则

10.数值的匹配 把合法的数值写出并分析规律, 根据规律编写正则,并测试非法数值

str='-12.34E23';

r=str.match(/^(-?)(0|[1-9]\d*)(\.\d+)?([eE][-+]?\d+)?$/)

11.中文的处理 默认中文采用的是双字节,在计算机中通过ASCII对应表来输入汉字,通过[]来设置中文的范围 escape()可以将字符串

eg: str='hello 中国'   r=str.match(/[u4E00-\n9FA5]/g)

12. 贪婪与懒惰: 在正则中默认是贪婪模型(尽可能多的匹配),可以在修饰数量的匹配符后面加上?则代表懒惰

eg: str='aabab'  r=str.match(/a.* ? b/)   

 

 

 

正则里面(?:   )代表它是个大括号,[ ]代码的是里面任何一个,比如下面那个emoticons_str里面,第一个[ ]里面就是可能是: = ,第二个里面可能是- o,后面有个问号代表可以出现或不出现,第三个里面可能是P p D等,其实就是整个是描述表情符:-p :p :D这些。

 

posted @ 2016-11-19 16:41  fionaplanet  阅读(506)  评论(0编辑  收藏  举报