Python中的正则

简介: 【8月更文挑战第10天】

Python中的正则表达式是通过re模块支持的,这是一个用于处理正则表达式的内置库。以下是如何使用re模块以及一些代码示例。

基本用法

  1. 导入模块

    import re
    
  2. 编译正则表达式

    pattern = re.compile(r'\d+')  # r'\d+' 表示匹配一个或多个数字
    
  3. 搜索字符串

    match = pattern.search('Hello 123 world!')
    if match:
        print('Found:', match.group())
    
  4. 遍历所有匹配

    for num in pattern.findall('123 abc 456 def 789'):
        print(num)
    
  5. 替换文本

    new_str = pattern.sub('XXX', 'The numbers are 123 and 456')
    print(new_str)
    
  6. 分割字符串

    parts = re.split(r'\W+', 'Hello, how are you?')
    print(parts)
    

进阶用法

  1. 使用正则表达式匹配多个组

    phone_pattern = re.compile(r'(\d{3})-(\d{3})-(\d{4})')
    match = phone_pattern.match('123-456-7890')
    if match:
        print(match.group(1), match.group(2), match.group(3))
    
  2. 使用正则表达式进行贪婪匹配

    text = 'abc 123 xyz 456'
    print(re.findall(r'\d+', text))  # 匹配所有数字
    
  3. 懒惰匹配(非贪婪匹配)

    html = '<div>123</div><div>456</div>'
    tags = re.findall(r'<div>(.*?)</div>', html)  # 懒惰匹配,每个div标签内的内容
    print(tags)
    
  4. 使用正则表达式检查字符串是否符合特定模式

    if re.fullmatch(r'\d{4}-\d{2}-\d{2}', '2023-08-08'):
        print('Valid date')
    
  5. 使用正则表达式进行模式替换,包含复杂替换逻辑

    def add_prefix(match):
        return 'NUM_' + match.group(0)
    
    new_text = re.sub(r'(\d+)', add_prefix, 'Find 123 and 456')
    print(new_text)
    
  6. 使用正则表达式处理Unicode和特殊符号

    text = 'Special characters: © ® ™'
    special_chars = re.findall(r'[\u00a9\u00ae\u2122]', text)
    print(special_chars)
    
  7. 使用正则表达式进行模式匹配并执行操作

    emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)
    print(emails)
    
  8. 使用正则表达式进行模式搜索,直到首次匹配

    email = re.search(r'\S+@\S+', text)
    if email:
        print('Found email:', email.group())
    

注意事项

  • 正则表达式中的特殊字符需要使用反斜杠 \ 进行转义。
  • 字面量字符串(raw string,前面带 r)在正则表达式中很常见,以避免对反斜杠进行转义。
  • 使用re.I标志进行不区分大小写的匹配。
目录
相关文章
|
2月前
|
Python
Python正则
【10月更文挑战第19天】
Python正则
|
7月前
|
数据库 C++ 索引
Python 正则表达式
Python 正则表达式
|
8月前
|
C++ Python
python正则表达式
python正则表达式--爬取百度文库内容
|
数据采集 机器学习/深度学习 自然语言处理
Python与正则表达式
我们在做机器学习项目的时候,很大部分的精力都在做数据的整理,不管是用爬虫在网上爬取数据还是对已有的数据进行整理,往往需要对一些特定的字符串进行处理,正则表达式则是进行数据处理的利器。
95 1
|
Python Perl
Python3 正则表达式
Python3 正则表达式
|
Python
Python 正则表达式 re
Python 正则表达式 re
92 0
|
数据库 Python Perl
Python学习笔记第十八天(正则)
Python学习笔记第十八天讲解正则表达式、检索和替换的用法。
69 0
Python学习笔记第十八天(正则)
|
Python
python正则
python正则
94 0
python正则
|
API Python
python——正则表达式(1)
python——正则表达式(1)
|
数据采集 Python
Python正则表达式初识(一)
首先跟大家简单唠叨两句为什么要学习正则表达式,为什么在网络爬虫的时候离不开正则表达式。正则表达式在处理字符串的时候扮演着非常重要的角色,在网络爬虫的时候也十分常用,大家可以把它学的简单一些,但是不能不学。
2351 0