Python 正则表达式(1)

来源:互联网 发布:国泰安数据库多少钱 编辑:程序博客网 时间:2024/04/27 18:56
import retext="Hi,I am Shirley Hilton.I am his wife."m=re.findall(r"\bhi\b",text)   #表示hi这个单词,结果是无匹配if m:    print melse:    print 'not match'n=re.findall(r"\bhi",text)   #['hi'],出自his,\bhi表示以hi开头的if n:    print n        else:    print 'not match'q=re.findall(r"\bHi\b",text)   #['Hi'],出自Hiif q:    print q       else:    print 'not match'
p=re.findall(r"[Hh]i",text)   #['Hi', 'hi', 'Hi', 'hi']if p:    print p       else:    print 'not match'

结果:

not match
['hi']
['Hi']

['Hi', 'hi', 'Hi', 'hi']


如果我们只想找到“hi”这个单词,而不把包含它的单词也算在内,那就可以使用“\bhi\b”这个正则表达式。在以前的字符串处理中,我们已经见过类似“\n”这种特殊字符。在正则表达式中,这种字符更多,以后足以让你眼花缭乱。

“\b”在正则表达式中表示单词的开头或结尾,空格、标点、换行都算是单词的分割。而“\b”自身又不会匹配任何字符,它代表的只是一个位置。所以单词前后的空格标点之类不会出现在结果里。

在前面那个例子里,“\bhi\b”匹配不到任何结果。但“\bhi”的话就可以匹配到1个“hi”,出自“his”。用这种方法,你可以找出一段话中所有单词“Hi”,想一下要怎么写。

最后再说一下[]这个符号。在正则表达式中,[]表示满足括号中任一字符。比如“[hi]”,它就不是匹配“hi”了,而是匹配“h”或者“i”。

在前面例子中,如果把正则表达式改为“[Hh]i”,就可以既匹配“Hi”,又匹配“hi”了。

0 0