脚本小子_python正则表达式

一、正则表达式
内置正则re库
元字符(metacharacter)是正则表达式中具有特殊意义的字符。每个元字符都有特殊意义,它们使正则表达式能够匹配特定的字符串。常用的元字符包括 | 、 () 、 [] 、 . 、 * 、 + 、 ? 、 ^ 、$ 和 (?P<name>) 。如果你在正则表达式中见到这些字符,要知道程序不是要搜索这些字符本身,而是要搜索它们描述的东西。
1、元字符说明
元字符
说明
.
代表任意字符
|
逻辑或操作符
[ ]
匹配内部的任一字符或子表达式
[^]
对字符集和取非
-
定义一个区间
\
对下一字符取非(通常是普通变特殊,特殊变普通)
*
匹配前面的字符或者子表达式0次或多次
*?
惰性匹配上一个
+
匹配前一个字符或子表达式一次或多次
+?
惰性匹配上一个
?
匹配前一个字符或子表达式0次或1次重复
{n}
匹配前一个字符或子表达式
{m,n}
匹配前一个字符或子表达式至少m次至多n次
{n,}
匹配前一个字符或者子表达式至少n次
{n,}?
前一个的惰性匹配
^
匹配字符串的开头
\A
匹配字符串开头
$
匹配字符串结束
[\b]
退格字符
\c
匹配一个控制字符
\d
匹配任意数字
\D
匹配数字以外的字符
\t
匹配制表符
\w
匹配任意数字字母下划线
\W
不匹配数字字母下划线
2、代码实例
# coding=utf-8
# python正则表达式
import re
# 查看re库可调用的方法
# print dir(re)
string = "The quick brown fox jumps over the lazy dog."
# 以空格作为分割符,进行分割
string_list = string.split()
# print string_list
# print help(re.compile)

pattern = re.compile(r"The",re.M|re.I)
# r"The",表明后面紧跟着的是原始字符串,确保要正则匹配的字符串跟转义字符不冲突
# re.I说明忽略大小写
# re.compile返回一个正则对象

# count = 0
# # 遍历列表逐一判断
# for word in string_list:
# # 正则对象查找是否存在The,如有则返回True,相反则为False
# if pattern.search(word):
# count += 1
# print("The 's count is:{0}".format(count))

# 通过sub替换查找到的字符串
# print help(pattern.sub)
# print("{}".format(pattern.sub('a',string)))

# match 从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
# line = "hello are world is equals hello world"
# matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
# if matchObj:
# print "matchObj.group() : ", matchObj.group()
# print "matchObj.group(1) : ", matchObj.group(1)
# print "matchObj.group(2) : ", matchObj.group(2)
# else:
# print "No match!!"

# search 扫描整个字符串并返回第一个成功的匹配。
# s = re.search(r"The",string,re.I|re.M)
# 打印第一个字符的位置
# print s.span()
# 打印第一个字符
# print s.group()

# findall 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
# print help(pattern.findall)
# l = pattern.findall(string)
# print l
# l = re.findall(r"The",string,re.I)
# print l

# finditer 和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
# l = pattern.finditer(string)
# for i in l:
# print i.group()

# split 方法按照能够匹配的子串将字符串分割后返回列表
# s = pattern.split(string)
# print s

猜你喜欢

转载自blog.csdn.net/u014795720/article/details/80784600
今日推荐