学习笔记23-Python正则表达式
2017-08-31 11:37
295 查看
正则表达式
正则表达式(Regular Expression)是一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。具体可参考菜鸟教程
不同的编程语言都存在正则表达式,只不过有一些语法规则不是互相支持的。
Python的正则表达式可以使用“re”包,其中封装了Python支持的所有正则表达式。
可以把re理解成一个正则表达式引擎,它负责对我们写的正则表达式文本进行编译,编译得到的是一个正则表达式对象(“object”),然后将这个对象与给定的字符串文本进行匹配,得到匹配结果。
下面给出一个例子:
题目描述:
小易喜欢的单词具有以下特性:
1.单词每个字母都是大写字母
2.单词没有连续相等的字母
3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。
例如:
小易不喜欢”ABBA”,因为这里有两个连续的’B’
小易不喜欢”THETXH”,因为这里包含子序列”THTH”
小易不喜欢”ABACADA”,因为这里包含子序列”AAAA”
小易喜欢”A”,”ABA”和”ABCBA”这些单词
给你一个单词,你要回答小易是否会喜欢这个单词。
#coding=utf-8 import re s=raw_input() pattern1=re.compile('[A-Z]{%d}'%len(s))#每个字符都是大写字母 pattern2=re.compile('.*(.)(\\1).*')#没有相邻的相同字母 pattern3=re.compile('.*(.).*(.)(.*\\1)(.*\\2).*')#没有相同的子序列 #(\\1)表示编号为1的group,(\\2)表示编号为2的group if re.match(pattern1,s)\ and not(re.match(pattern2,s))\ and not(re.match(pattern3,s)): print 'Likes' else: print 'Dislikes'
上面的每个pattern就是一个正则表达式的对象,它们分别与输入字符串s匹配。
具体Python的正则表达式可参考AstralWind的博客
相关文章推荐
- python爬虫之正则表达式学习笔记一
- Python学习笔记6-Python中re(正则表达式)模块学习
- python网络爬虫学习笔记之之正则表达式
- Python学习笔记(五)正则表达式
- Python 正则表达式之 补充学习笔记
- python学习笔记(四)正则表达式
- 【转】【Python学习笔记】正则表达式
- Python学习笔记 第二部分 - 正则表达式 与 爬虫小实例(抓取豆瓣电影中评分大于等于8分的影片)
- Python学习笔记--正则表达式,re模块
- Python 学习笔记 (5)—— 正则表达式
- Python学习笔记8:标准库之正则表达式
- Python 学习笔记(三):文件,高级特性,枚举,正则表达式,模块
- python学习笔记-正则表达式提取指定关键字
- python 系统学习笔记(十五)---正则表达式
- Python之学习笔记(正则表达式)
- Python学习笔记——正则表达式对象
- Python的re(正则表达式)模块学习笔记
- python学习笔记21(正则表达式)
- 【学习笔记】Python正则表达式