前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python从0到100(二十四):正则表达式的应用

Python从0到100(二十四):正则表达式的应用

原创
作者头像
是Dream呀
发布2024-05-28 19:58:22
810
发布2024-05-28 19:58:22
举报
文章被收录于专栏:总结xyp总结xyp
在这里插入图片描述
在这里插入图片描述

正则表达式是一种用于字符串搜索和操作的强大工具,它允许你使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在编程中,正则表达式被广泛应用于文本处理,如模式搜索、文本替换、字符串验证等。

1.正则表达式基础

正则表达式由一系列符号组成,每个符号都有特定的含义。以下是一些常见的正则表达式符号及其含义:

符号

解释

示例

说明

.

匹配任意单个字符

b.t

可以匹配 bat, but, b#t, b1t 等

\w

匹配任意字母、数字或下划线

b\wt

可以匹配 bat, b1t, b_t 等,但不能匹配 b#t

\s

匹配任意空白字符

love\syou

可以匹配 "love you"

\d

匹配任意数字

\d\d

可以匹配 01, 23, 99 等

\b

单词边界

\bThe\b

匹配 "The" 作为单词出现的情况

^

字符串开始位置

^The

匹配以 "The" 开始的字符串

$

字符串结束位置

.exe$

匹配以 ".exe" 结束的字符串

...

更多符号和解释

...

...

2.Python对正则表达式的支持

Python通过内置的re模块提供了对正则表达式的全面支持。以下是re模块的一些核心函数:

函数

说明

compile

编译正则表达式,返回正则表达式对象

match

匹配字符串的开始部分

search

搜索字符串中第一次出现的模式

split

根据模式分隔符拆分字符串

sub

替换字符串中的模式

findall

查找字符串中所有匹配的模式

finditer

查找字符串中所有匹配的模式,返回迭代器

fullmatch

匹配整个字符串

purge

清除正则表达式缓存

re.IGNORECASE

忽略大小写匹配

...

更多功能和标记

3.实例演示

例子1:验证用户名和QQ号

代码语言:python
代码运行次数:0
复制
import re

username = input("请输入用户名: ")
qq = input("请输入QQ号: ")

# 验证用户名(6-20位字母、数字或下划线)
if not re.match(r"^[0-9a-zA-Z_]{6,20}$", username):
    print("用户名无效,请重新输入。")

# 验证QQ号(5-12位数字,首位不能为0)
if not re.fullmatch(r"[1-9]\d{4,11}", qq):
    print("QQ号无效,请重新输入。")

if re.match(r"^[0-9a-zA-Z_]{6,20}$", username) and re.fullmatch(r"[1-9]\d{4,11}", qq):
    print("输入有效!")

例子2:提取手机号码

代码语言:python
代码运行次数:0
复制
import re

# 正则表达式匹配国内手机号码
pattern = re.compile(r'(?<=\D)1[34578]\d{9}(?=\D)')
sentence = "联系方式:13800138000"
phones = re.findall(pattern, sentence)
for phone in phones:
    print(phone)

例子3:替换不良内容

代码语言:python
代码运行次数:0
复制
import re

text = "This is a bad word: F*** it."
cleaned_text = re.sub(r'\bbad\b', 'good', text)
print(cleaned_text)

例子4:拆分字符串

代码语言:python
代码运行次数:0
复制
import re

text = "One, two. Three, four. Five."
words = re.split(r'[,.]', text)
print(words)

4.总结

正则表达式是一个非常强大的工具,可以帮助你在编程中处理复杂的字符串匹配和操作任务。虽然开始时可能会觉得有些难度,但随着实践的增加,你会越来越熟悉它的使用。不要忘了利用在线工具来测试和调试你的正则表达式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.正则表达式基础
  • 2.Python对正则表达式的支持
  • 3.实例演示
    • 例子1:验证用户名和QQ号
      • 例子2:提取手机号码
        • 例子3:替换不良内容
          • 例子4:拆分字符串
          • 4.总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档