python入门(十五):正则表达式

来源:互联网 发布:信义安所见乎翻译 编辑:程序博客网 时间:2024/06/06 03:46

1. re.match(pattern模式 , string,flags=0标志位)  从开头匹配,没有匹配到对象就返回NONE
    re.search() 浏览全部字符,匹配第一个符合规则的字符串(计算器)  .group
    re.findall()  将匹配到的所有内容都放置在一个列表中     .group
 

    re.sub(pattern,repl,string,max=0)  找到某个字符串并替换

    re.compile(strpattern[,  flag]):  这个方法是Pattern类的工厂方法,用于将字符串形式的正则,可以把正则表达式编译成正则表达式对象,把经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率

import retext = 'gooc is a cool boy, he is very good'regex = re.compile(r'\w*oo\w*')print(regex.findall(text))
['gooc', 'cool', 'good']

    re.split()用于分割字符串

         (方法一)

import reprint(re.split(r'\d+', 'one1two2three3four4'))
          (方法二)

import rep = re.compile(r'\d+')print(p.split('one1two2three3four4'))
          ['one', 'two', 'three', 'four', '']


         flags:  

                  re.i 使匹配对大小写不敏感

                  re.L 做本地化识别(local-aware)匹配

                  re.M多行匹配,影响^he $

                  re.S 使 . 匹配包括换行在内的所有字符

2.元字符

 .   匹配任意一个字符

^  匹配开头

$  匹配结尾

* 出现0到多次(不加括号的情况下只控制前面一个字符)

+ 出现1到多次

出现0或1次 

2.字符集

(元字符和字符集符号不混用)

[ ] 匹配[]中的任意一个字符 

()

{}一般用来表示匹配的长度

^  非的意义  ([^1-9]取除了1-9)

\  后面跟元字符去除特殊功能

   后面跟普通字符实现特殊功能-----------\d  任何十进制数  相当于[0-9]

   引用序号对应的字组所匹配的字符串   \D任何非数字字符  相当于[^0-9]

                          |                                     \s  任何空白字符  [\t\n\r\f\v]

                          |                                      \S非空白字符

                          |                                      \w 任何字母和数字字符[a-zA-Z0-9]

                          |                                       \W匹配任何非字母和数字字符

                          |                                       \b匹配一个单词边界,也就是指单词和空格间的位置(用于匹配某个单词)

       re.search(r"(alex)(eric)com\2","alexericcomeric")


*?,+?,??,{m,n}?          前面的* + ?都是贪婪匹配 在这三个符号后再加?可改为非贪婪模式

3.

原创粉丝点击