正则表达式

一 正则表达式:     正则表达式是对字符串串操作的⼀一种逻辑公式. 我们⼀一般使⽤用正则表达式对字符串串进⾏行行匹 配和过

  优点: 灵活, 功能性强, 逻辑性强  

  缺点: 上⼿手难. ⼀一旦上⼿手, 会爱上这个东⻄

  ⼯具: 各⼤大⽂文本编辑器⼀一般都有正则匹配功能. 我们也可以http://tool.chinaz.com/regex/进⾏行行在线测试.

二 

  字符组:单⽤用[]括起来. 在[]中出现的内容会被匹配. 例例如:[abc] 匹配a或b或c [a-zA-Z0-9]

 1 基本元字符

.     匹配除换⾏行行符以外的任意字符 
\w    匹配字⺟母或数字或下划线 
\s    匹配任意的空⽩白符
\d    匹配数字
\n    匹配⼀一个换⾏行行符
\t    匹配⼀一个制表符 
\b    匹配⼀一个单词的结尾 
^     匹配字符串串的开始 
$     匹配字符串串的结尾 
\W    匹配⾮非字⺟母或数字或下划线 
\D    匹配⾮非数字 
\S    匹配⾮非空⽩白符 
a|b   匹配字符a或字符b 
()    匹配括号内的表达式,也表示⼀一个组
[...]    匹配字符组中的字符
[^...]    匹配除了了字符组中字符的所有字符

 2量词

*    重复零次或更更多次 
+    重复⼀一次或更更多次 
?    重复零次或⼀一次 
{n}    重复n次 
{n,}  重复n次或更更多次 
{n,m}    重复n到m次 

 注意:在量词中的 *,  +, {} 都属于贪婪匹配. 就是尽可能多的匹配到结果.

    在使⽤用.*后⾯面如果加了了? 则是尽可能的少匹配. 表⽰示惰性匹配

      .*?x的特殊含义  找到下⼀一个x为⽌止. x结尾

       6. 转义                在正则表达式中, 有很多有特殊意义的是元字符, ⽐比如\n和\s等,如果要在正则中匹 配正常的"\n"⽽而不不是"换⾏行行符"就需要对"\"进⾏行行转义, 变成'\\'.在python中, ⽆无论是正则表达式, 还 是待匹配的内容, 都是以字符串串的形式出现的, 在字符串串中\也有特殊的含义, 本身还需要转 义. 所以如果匹配⼀一次"\n", 字符串串中要写成'\\n', 那么正则⾥里里就要写成"\\\\n",这样就太麻烦了了. 这个时候我们就⽤用到了了r'\n'这个概念, 此时的正则是r'\\n'就可以了了.

posted @ 2018-10-10 20:28  python传言  阅读(177)  评论(0编辑  收藏  举报