正则表达式入门

引言

正则表达式(Regular Expression),在编程语言中通常缩写为regex或regexp,是一种用于字符串搜索和操作的模式描述方法。它通过定义一系列的规则来匹配、查找和管理文本数据。无论是数据清洗、格式转换还是自动化测试,正则表达式都扮演着不可或缺的角色。
正则表达式在线校验网站: https://tool.oschina.net/regex/

正则表达式基础

在介绍正则表达式之前,我们需要了解一些基本的组成元素:

特殊字符

  • 任意字符. 匹配除换行符之外的任意单个字符。
  • 任意数字\d 等同于 [0-9],匹配任意一个数字字符。
  • 任意非数字\D 等同于 [^0-9],匹配任意一个非数字字符。
  • 任意字母[a-z] 匹配任意一个英文小写字母。
  • 任意非字母[^a-z] 匹配任意一个非英文小写字母的字符。

量词

  • *:出现0次或多次。
  • +:出现1次或多次。
  • ?:出现0次或1次。
  • {n}:确定出现n次。
  • {n,}:至少出现n次。
  • {n,m}:出现n到m次。

位置锚点

  • ^:行的开头。
  • $:行的结尾。

断言

  • \b:单词边界。
  • \B:非单词边界。

字符集

  • []:定义一个字符集,匹配其中的任意单个字符。
  • [^]:取反,匹配不在字符集中的任意单个字符。

正则表达式语法规则

正则表达式的语法规则是构建有效正则表达式的基础。以下是一些常见的语法规则:

  1. 组合:使用|来表示“或”,例如ab|cd可以匹配“ab”或“cd”。
  2. 分组:使用圆括号()来创建子表达式,允许对正则表达式的部分进行分组。
  3. 量词:使用量词来指定模式出现的次数。
  4. 转义特殊字符:使用反斜线\来转义特殊字符,使其作为普通字符匹配。

代码示例

以下是一些使用Python语言的正则表达式示例:

示例1:匹配邮箱地址

import re
email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
text = "Please contact me at example@example.com or admin@mailserver.com"
matches = re.findall(email_pattern, text)
print(matches)  # 输出: ['example@example.com', 'admin@mailserver.com']

示例2:匹配HTML标签

html_pattern = r'<.*?>'
html_content = "<div>Hello, <a href='#'>world</a></div>"
tags = re.findall(html_pattern, html_content)
print(tags)  # 输出: ['<div>Hello, <a href='#'>world</a></div>']

示例3:使用量词匹配电话号码

phone_pattern = r'\b\d{3}[-.]?\d{3}[-.]?\d{4}\b'
phone_numbers = "Call me at 123-456-7890 or 123.456.7890"
numbers = re.findall(phone_pattern, phone_numbers)
print(numbers)  # 输出: ['123-456-7890', '123.456.7890']
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blues_C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值