正则表达式

  1. 1.re模块的介绍
  2. 2. re模块的使用
  3. 3.匹配单个字符
  4. 4. 匹配多个字符
  5. 5.匹配开头和结尾
  6. 6.除了指定字符以外都匹配
  7. 7. 匹配分组相关正则表达式

1.re模块的介绍

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个 re 模块

# 导入re模块
import re
# 使用match方法进行匹配操作
result = re.match(正则表达式,要匹配的字符串)
# 如果上一步匹配到数据的话,可以使用group方法来提取数据
result.group()

2. re模块的使用

import re
# 使用match方法进行匹配操作
result = re.match("hello","helloworld")
# 获取匹配结果
info = result.group()
print(info)

运行结果:
hello

re.match()    从头开始匹配字符串数据
re.findall()  不是从开头开始匹配的,而是从第一个匹配上的字符开始,返回所有的可以匹配上的字符(返回列表格式)
re.search()   从全文开始匹配,找到一个符合的就结束

3.匹配单个字符

4. 匹配多个字符

5.匹配开头和结尾

import re
# 匹配以数字开头的数据
match_obj = re.match("^\d.*", "3hello")
if match_obj:
    # 获取匹配结果
    print(match_obj.group())
else:
    print("匹配失败")
 运行结果  :3hello 

6.除了指定字符以外都匹配

[^指定字符]: 表示除了指定字符都匹配
需求: 第一个字符除了aeiou的字符都匹配

import re
match_obj = re.match("[^aeiou]", "h")
if match_obj:
    # 获取匹配结果
    print(match_obj.group())
else:
    print("匹配失败")
运行结果  :h

7. 匹配分组相关正则表达式

匹配出163、126、qq等邮箱

import re
match_obj = re.match("[a-zA-Z0-9_]{4,20}@(163|126|qq|sina|yahoo)\.com", "hello@163.com")
if match_obj:
    print(match_obj.group())
    # 获取分组数据
    print(match_obj.group(1))
else:
    print("匹配失败")
    
运行结果: 
    hello@163.com
    163

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:正则表达式

本文作者:伟生

发布时间:2020-01-27, 16:00:11

最后更新:2019-01-27, 16:40:47

原始链接:http://yoursite.com/2020/01/27/basic_03_regular/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏