您的位置:首页 > 编程语言 > Python开发

学习笔记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