首页 / 正则 / python中正则表达式的练习
python中正则表达式的练习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中正则表达式的练习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4451字,纯文字阅读大概需要7分钟。
内容图文
![python中正则表达式的练习](/upload/InfoBanner/zyjiaocheng/802/5a15cb66be094933a5847556fd1dfa2f.jpg)
https://www.cnblogs.com/think-and-do/p/6414135.html python中正则表达式的练习
. 匹配除换行符以外的任意字符
^ 匹配字符串的开始
$ 匹配字符串的结束
[] 用来匹配一个指定的字符类别
? 对于前一个字符字符重复0次到1次
* 对于前一个字符重复0次到无穷次
{} 对于前一个字符重复m次
{m,n} 对前一个字符重复为m到n次
\d 匹配数字,相当于[0-9]
\D 匹配任何非数字字符,相当于[^0-9]
\s 匹配任意的空白符,相当于[ fv]
\S 匹配任何非空白字符,相当于[^ fv]
\w 匹配任何字母数字字符,相当于[a-zA-Z0-9_]
\W 匹配任何非字母数字字符,相当于[^a-zA-Z0-9_]
\b 匹配单词的开始或结束
一、python中的正则表达式
1.1 re.search()
re.search在字符串内查找模式匹配,只找到第一个匹配然后返回,如果字符串没有匹配,则返回None.
help(re.search)
search(pattern, string, flags=0)
第一个参数:规则
第二个参数:要匹配的字符串
第三个参数:标志位,用于控制正则表达式的匹配规则
实例:
>>> name="Hello,My name is kuangl,nice to meet you..."
>>> k=re.search(r'k(uan)gl',name)
>>> if k:
... print k.group(0),k.group(1)
... else:
... print "Sorry,not search!"
...
kuangl uan
正则表达式中括号的使用:
>>> a="123abc456"
>>> import re
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0))
123abc456
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1))
123
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2))
abc
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3))
456
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group())
123abc456
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).groups())
(‘123‘, ‘abc‘, ‘456‘)
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups())
(‘3‘, ‘c‘, ‘456‘)
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups(1))
(‘3‘, ‘c‘, ‘456‘)
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group(0))
123abc456
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group())
123abc456
· m.group()==m.group(0)==所有匹配的字符(即匹配正则表达式整体结果)
· group(1)列出第一个括号匹配内容,group(2)列出第二个括号匹配内容,group(3)列出第三个括号匹配内容
· m.groups()返回所有括号匹配的字符,以tuple格式。
没有匹配成功时,返回None
当正则表达式中没有括号,group(1)就不对了。
1.2 re.match()
re.match()尝试从字符串的开始匹配一个模式,也就是说对第一个单词进行匹配
help(re.match)
match(pattern, string, flag=0)
实例:
>>> name="Hello,My name is kuangl,nice to meet you..."
>>> k=re.match(r"(\H....)",name)
>>> if k:
... print k.group(0),'\n',k.group(1)
... else:
... print "Sorry,not match!"
...
Hello
Hello
注意re.match()与re.search()的区别,re.match()只匹配字符串的开始,如果字符串的开始不符合模式,匹配失败,返回None; re.search()匹配整个字符串,直到找到匹配。
1.3 re.findall()
re.findall()在目标字符串中查找符合规则的字符串
help(re.findall)
findall(pattern, string, flags=0)
返回的结果是一个列表,存储的是满足模式的字符串,如果没有符合规则的字符串,就返回空值。
实例:查找邮件
>>> mail='<user01@mail.com> <user02@mail.com> user04@mail.com' #第3个故意没有尖括号
>>> re.findall(r'(\w+@m....[a-z]{3})',mail)
['user01@mail.com', 'user02@mail.com', 'user04@mail.com']
1.4 re.sub()
re.sub()用于替换字符串的匹配项
help(re.sub)
sub(pattern, repl, string, count=0)
第一个参数:规则
第二个参数:替换后的字符串
第三个参数:字符串
第四个参数:替换个数。默认为0,表示每个匹配项都替换
实例:将空白处替换成-
>>> test="Hi, nice to meet you where are you from?"
>>> re.sub(r'\s','-',test)
'Hi,-nice-to-meet-you-where-are-you-from?'
>>> re.sub(r'\s','-',test,5) #替换至第5个
'Hi,-nice-to-meet-you-where are you from?'
1.5 re.split()
re.split()用于分割字符串
help(re.split)
split(pattern, string, maxsplit=0)
第一个参数:规则
第二个参数:字符串
第三个参数:最大分割字符串,默认为0,表示每个匹配项都分割
实例:分割所有的字符串
>>> test="Hi, nice to meet you where are you from?"
>>> re.split(r"\s+",test)
['Hi,', 'nice', 'to', 'meet', 'you', 'where', 'are', 'you', 'from?']
>>> re.split(r"\s+",test,3) #分割前三个
['Hi,', 'nice', 'to', 'meet you where are you from?']
1.6 re.compile()
re.compile()把正则表达式编译成一个正则对象
>>> test="Hi, nice to meet you where are you from?"
>>> k=re.compile(r'\w*o\w*') #匹配带o的字符串
>>> dir(k)
['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner', 'search', 'split', 'sub', 'subn']
>>> print k.findall(test) #显示所有包涵o的字符串
['to', 'you', 'you', 'from']
>>> print k.sub(lambda m: '[' + m.group(0) + ']',test) # 将字符串中含有o的单词用[]括起来
Hi, nice [to] meet [you] where are [you] [from]?
https://blog.51cto.com/kling/1268731
内容总结
以上是互联网集市为您收集整理的python中正则表达式的练习全部内容,希望文章能够帮你解决python中正则表达式的练习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。