1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块

python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块

时间:2021-05-12 20:01:50

相关推荐

python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块

特殊字符:注意\b是匹配单词而非字符串的开始和结束; \w不能匹配汉字

限定符放在匹配符的后边

2 括号分组:

(\d\d\d){2}#有括号匹配6位数字

\d\d\d{2}#没有括号匹配4位数字

3?的使用

4 sys.re模块的常用函数表:查找、分隔、替换字符串

re模块的规则选项:大小写 flags参数是附加选项,如re.I表示忽略大小写

5 实战:字符串前边的r表示制定规则,出现意想不到的错误时很可能是漏加r

import re

# ^与$的使用

s = "HELLO WORLD"

print re.findall(r"^hello", s)print re.findall(r"^hello", s,

re.IGNORECASE)print re.findall(r"WORLD$", s)

print re.findall(r"wORld$", s, re.I)

print re.findall(r"\b\w+\b", s)

import re

#sub用法,关于替换

s = "hello world"

print re.sub("hello", "hi",

s)print re.sub("hello", "hi", s[-4:])print re.sub("world", "China", s[-5:])#3个sub都是打印s字符串转变后的结果

print s

6 subn、sub和匹配实例

import re

# 特殊字符的使用

s = "你好 WORLD2"

print "匹配字母数字:" + re.sub(r"\w", "hi", s)#一个字符就替换成hi,有6个

print "替换次数:" + str(re.subn(r"\w", "hi", s)[1])#返回2元祖,第二个索引是替换次数

print "匹配非字母数字的字符:" + re.sub(r"\W", "hi",

s)#一个汉字相当于2个字符

print "替换次数:" + str(re.subn(r"\W", "hi", s)[1])

print "匹配空白字符:" + re.sub(r"\s", "*", s)print "替换次数:" + str(re.subn(r"\s", "*", s)[1])

print "匹配非空白字符:" + re.sub(r"\S", "hi", s)

print "替换次数:" + str(re.subn(r"\S", "hi", s) [1])

print "匹配数字:" + re.sub(r"\d", "2.0", s)

print "替换次数:" + str(re.subn(r"\d", "2.0", s)[1])

print "匹配非数字:" + re.sub(r"\D", "hi", s)

print "替换次数:" + str(re.subn(r"\D", "hi", s)[1])

print "匹配任意字符:" + re.sub(r".", "hi", s)print "替换次数:" + str(re.subn(r".", "hi", s)[1])

7解析电话号码#返回的是列表!

import re

# 限定符的使用

tel1 = "0791-1234567"

print re.findall(r"\d{3}-\d{8}|\d{4}-\d{7}", tel1)

tel2 = "010-12345678"

print re.findall(r"\d{3}-\d{8}|\d{4}-\d{7}", tel2)

tel3 = "(010)12345678"

print re.findall(r"[\(]?\d{3}[\)-]?\d{8}|[\(]?\d{4}[\)-]?\d{7}",

tel3)

print re.findall(r"a.*?c", "abcabc")

正则表达式的解析费时,如果多次使用findall方式匹配字符串,效率可能比较低,可以使用compile()进行预编译,返回一个pattern对象,用于提高字符串的匹配速度

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。