正则表达式for python

  1. re模块
    import re
    re.match(正则表达式, 需要处理的字符串)
    re.match(r"hello", “hello world”)
    有返回值则匹配成功,无返回值则匹配不成功
    a=re.match()
    a.group() 得到匹配的信息
  2. 单个字符匹配
    [ 1-8 ] 匹配1到8
    【1-36-8】 1到3以及6到8
    在这里插入图片描述
  3. re.match(正则表达式, 字符串, re.I) 忽略大小写
    re.A 不考虑中文
    re.U 中文也算
    re.S 让 . 匹配任意包括
    4.{}
    前面紧挨着的重复几次
    \d{1,3} 1到3位的数字
    \d{3} 必须3位数字
    \d{3 , } 表示3位或3位以上

  4. 1.前面紧挨着的可有可无
  5. 非贪婪

前面紧挨着的可以有多个或0个
7. +
前面紧挨着的可以有多个或1个
8. $
结尾
9. ^
1.出现在字符开头:开头
2. 不出现字符开头:表示非,举例:a^b 表示a后边非b
10. |

11. ()
分组,用group(n) 调用
groups() 调用所有分组
group(1,2) 调用第一和第二分组
\1 在正则表达式中调用第一个括号分组
分组取名 (?P<变量名>信息)
调用取名的分组 (?P=变量名)
12. search() 不从头匹配
match() 从头匹配
findall() 找到所有,无需group()
sub() 替换
举例:re.sub(r"\d+", “998”, “pyrhon = 997, c++ = 1024”)
输出 python = 998,c++ = 998
举例2:re.sub(r"\d+", fuction, “pyrhon = 997”) 调用函数
fuction(temp):
a = temp.group() a就等于997
return 997替换为return
split() 切割,无需group()
13.?:
适用于括号不读取分组

### Python正则表达式的使用教程 Python通过`re`模块提供了强大的正则表达式功能,用于处理字符串匹配、替换和其他操作。以下是关于如何在Python中使用正则表达式的详细介绍。 #### 1. 导入re模块 要使用正则表达式,首先需要导入`re`模块[^1]: ```python import re ``` #### 2. 基本概念 正则表达式是一种描述字符模式的语言,可以用来查找、验证或提取特定格式的文本。例如,可以通过正则表达式来定义电子邮件地址或电话号码的格式。 #### 3. 编译正则表达式 为了提高效率,通常会先编译正则表达式对象再执行匹配操作。这一步不是必需的,但如果多次重复使用同一个正则表达式,则建议这样做: ```python pattern = r&#39;\d+&#39; # 匹配一个或多个数字 compiled_pattern = re.compile(pattern) ``` #### 4. 查找匹配项 `re.findall()`函数返回输入字符串中所有与正则表达式匹配的子串列表: ```python result = re.findall(r&#39;\d+&#39;, &#39;There are 12 apples and 3 bananas&#39;) print(result) # 输出: [&#39;12&#39;, &#39;3&#39;] ``` #### 5. 替换字符串 利用`re.sub()`方法可以根据指定的正则表达式将匹配的部分替换成新的内容[^2]: ```python new_string = re.sub(r&#39;apple(s)?&#39;, &#39;oranges&#39;, &#39;I like apple pie and green apples.&#39;) print(new_string) # 输出: I like orange pie and green oranges. ``` #### 6. 判断是否完全匹配 如果希望检测整个字符串是否符合某个模式,可采用`re.fullmatch()`: ```python if re.fullmatch(r&#39;[A-Za-z]+&#39;, &#39;hello&#39;): print(&#39;Matched!&#39;) else: print(&#39;Not matched.&#39;) ``` #### 示例综合应用 下面是一个完整的例子展示如何结合上述知识点在一个文档里寻找所有的日期并将其转换成另一种格式: ```python text = """Important dates include meeting on 09/15/2023, deadline is set at 11/30/2023.""" # 定义原始日期格式到目标格式映射关系 date_format_map = { r&#39;(\d{2})/(\d{2})/(\d{4})&#39;: r&#39;\g<3>-\g<1>-\g<2>&#39; } for old_fmt, new_fmt in date_format_map.items(): text = re.sub(old_fmt, new_fmt, text) print(text) # 输出结果:"Important dates include meeting on 2023-09-15, deadline is set at 2023-11-30." ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值