Python基础之re模块
2017-04-02 20:03
274 查看
正则表达式简明教程
import re text = 'c++ python2 python3 perl ruby lua java javascript php4 php5 c' #match,search,findall,split,sub #报错,注意转译 re.match(r'c++',text) re.match(r'c\+\+',text) #注意re.match 和 re.search 的区别 match只是匹配头几个字符,而search则是整个字符串搜索找出第一,没有都返回None 找到返回一个Match object 对象,该对象可以通过其中的方法显示找到的匹配字符常用的是XXX.group() re.match(r'java',text) re.search(r'java',text) #在对应的字符串中搜索所有符合pattern的匹配 print re.findall(r'python',text) #根据pattern将字符串进行分割 print re.split(r' perl ',text) #re.sub(r'X','Y',text) 将X用Y替换 print re.sub(r'ruby','fortran',text) # + 1-inf # * 0-inf # ? 0-1, # [] or # {} repeat # [^] not print re.findall(r'p+',text) print re.findall(r'p[a-zA-Z]+',text) #{1,} print re.findall(r'c[a-zA-Z]*',text) #{,inf} print re.findall(r'c[^a-zA-Z]*',text) #{,inf} print re.findall(r'c[a-zA-Z]?',text) #{,1} # | or 分支的概念 print re.findall(r'[pj][a-zA-Z]+',text) #{,inf} print re.findall(r'p[^0-9]+|j[a-zA-Z]+',text) print re.findall(r'p[^0-9 ]+|j[a-zA-Z]+',text) # ^ start # $ end # . except \n print re.findall(r'^c..',text) print re.findall(r'c+',text) print re.findall(r'c\++',text) print re.findall(r'c$',text) # \w [a-zA-Z0-9_], \W # \d [0-9], \D # \s [ \t\n\r\f\v], \S print re.findall(r'p\w+',text) print re.findall(r'p\w+\d',text) print re.findall(r'p\w+[0-9]',text) print re.findall(r'p\w{5,9}',text) # \b word boundary # \B not \b # \A input start, ^ # \Z input end, $ print re.findall(r'\bp[^0-9]',text) print re.findall(r'p[^0-9]\b',text) # *? 0~inf non-greedy # +? 1~inf non-greedy #注意贪婪模式和非贪婪模式的区别,默认以贪婪模式匹配,如果在对应的匹配模式下添加?,会将贪婪模式变成非贪婪模式 print re.findall(r'p[^0-9]*',text) print re.findall(r'p[^0-9]*?',text) print re.findall(r'p[^0-9]+\b',text) print re.findall(r'p[^0-9]+?\b',text) # () group (分组的概念) # (?P<name>pattern) a=re.search(r'(p[a-zA-Z]+)([0-9])','python2') print a.group(1), a.group(2) a=re.search(r'(?P<name>p[a-zA-Z]+)(?P<version>[0-9])','python2') print a.group('name'), a.group('version') print a.groupdict() pattern = re.compile(r'(?P<name>p[a-zA-Z]+)(?P<version>[0-9])') results = pattern.search('python2') print results.groupdict() results = pattern.search('python3') print results.groupdict() results = pattern.search('php4') print results.groupdict() #一个简单的循环匹配 ######################################### for t in text.split(' '): results = pattern.search(t) if results: print results.groupdict()
相关文章推荐
- python基础之 re(正则表达式)模块学习
- Python基础(13)_python模块之re模块(正则表达式)
- Python Re模块基础知识
- python的re模块基础认识
- python基础之re模块
- python中re模块基础用法(正则)
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- Python基础(十)re模块
- Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)
- python爬虫入门(1) 基础知识 ; 正则表达式 Re 模块
- Python基础-re正则模块
- Python基础--正則表達式基本的语法以及re模块
- python基础之正则表达式和re模块
- python 正则表达式 re模块基础
- VII Python(6)基础知识(re正则表达式、MySQLdb模块)
- Python基础教程之正则表达式基本语法以及re模块
- python基础之 re(正则表达式)模块学习
- python re模块编译代码与非编译代码性能检测
- Python模块学习 re 正则表达式
- Python中RE模块的应用