正则在Python中的使用

人生苦短 我用python

开始愉快的享(代)受(码)时间:

  • 注意:

1):正则表达式(RE)是一种小型的 高度专业化的编程语言 它内嵌python中 并通过re模块来实现但并非所有的字符串处理都能使用正则表达式
2):python中 可以将正则表达式编译成一个对象 re提供了一个正则表达式引擎的接口 可以让你将REstring编译成对象并用他们来进行匹配

  • 常用元字符
[ ]:   常用于指定字符集 元字符在字符集中不起作用

^ : 尖角号 通常用于匹配行首

$ :dollor符  用于匹配末尾

\ 将元字符转成普通符号的话 就用转义字符\

{8} :{}表示将前面规则重复8次

* 表示前面重复0到多次

+表示最少重复一次

?:表示可有可无 当出现在重复元字符后时表示非贪婪模式 

x|y     匹配 x 或 y

\d  匹配一个数字字符。等价于 [0-9]
\D  匹配一个非数字字符。等价于 [^0-9]

\w  匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'
\W  匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'

\s  匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
\S  匹配任何非空白字符。等价于 [^ \f\n\r\t\v]

.   匹配除换行符 \n 之外的任何单字符 。
  • 在python中的方法使用:

导入模块 import re

import re 

pattern = re.compile(r'规则') # 将正则表达式编译成Pattern对象

pattern.match('hello world!')  # 匹配开头 如果有结果的返回一个对象

pattern.search('hello world!')  # match 只查找开头部分 search整个字符串查找 返回第一个匹配的结果

pattern.findall('one1two2three3four4') # 查找整个字符串  返回一个列表

pattern.split(''字符串'') # 可以将字符串匹配正则表达式的部分割开并返回一个列表  例如: re.split(r'[\+\-\*]', s)  按照+ - * 分割字符串s

pattern.sub('要替换的内容', '原始要被替换的内容')  #  替换

  • 示例:
import  re

pattern = re.compile(r'(\w+)')
s = "hello 123,hello 456"

#查找
s_list=pattern.findall(s)
print(s_list)
# 替换
s_list=pattern.sub('hello world',s)
print(s_list)

结果为:
['hello', '123', 'hello', '456']
hello world hello world,hello world hello world
  • :编译前1:re.findall(rule,str)即 (规则, 字符串)

  • 编译后2:re_tel = re.compile(rule,这里选填) 编译后要比编译前匹配起来的速度快很多

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 12,118评论 0 99
  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,357评论 4 46
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 9,499评论 0 13
  • Echo以前的文字是自由的,点滴的生活流露出幸福,看到的人也会跟着幸福。自从荷西去了,她的世界失去光了,虽然她已经...
    一直在变的风阅读 1,319评论 0 1
  • 小学一年级时的数学老师,我不记得他的名字了,只记得姓M。M老师当时(1988年)也有差不多50岁,头发有点花白。 ...
    写作的奶爸阅读 3,770评论 0 3

友情链接更多精彩内容