## 正则表达式的概念和用途
正则表达式(Regular Expression,简称Regex)是对字符串操作的一种逻辑公式,由一些事先定义好的特定字符以及这些特定字符的组合所构成。这些特定字符及其组合被用来描述在搜索文本时要匹配的一个或多个字符串。正则表达式的用途非常广泛,包括但不限于:
匹配和查找文本:快速匹配和查找特定模式的文本,如查找包含特定单词的句子、匹配邮箱、电话等。
数据清洗和处理:去除特定字符或标签、提取文本中的有效信息等。
表单验证:验证用户输入的表单数据,如验证邮箱地址是否合法。
字符串替换:将文本中的某个模式替换为另一个字符串。
提取信息:提取特定的信息,例如提取网页中的链接、日志中的关键信息等。
Python中正则表达式的基本语法
Python中正则表达式的处理主要通过re模块来实现。re模块提供了一系列函数来执行正则表达式的匹配、查找、替换等操作。基本语法示例
匹配字符串
python
import re
# 使用match函数从字符串起始位置匹配
match_obj = re.match(r'hello', 'hello world')
if match_obj:
print("Match found:", match_obj.group())
else:
print("No match")
# 注意:match函数仅从字符串起始位置开始匹配
match_obj = re.match(r'world', 'hello world')
if not match_obj:
print("No match from start")
搜索字符串
python
# 使用search函数在字符串中搜索第一个匹配项
search_obj = re.search(r'world', 'hello world')
if search_obj:
print("Search found:", search_obj.group())
else:
print("No search found")
常见特殊字符的含义
.:匹配除换行符以外的任意字符。
^:匹配字符串的开始。
$:匹配字符串的结束。
*:匹配前面的子表达式零次或多次。
+:匹配前面的子表达式一次或多次。
?:匹配前面的子表达式零次或一次。
{n}:n 是一个非负整数。匹配确定的 n 次。
{n,}:n 是一个非负整数。至少匹配n 次。
{n,m}:m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
[xyz]:字符集合。匹配所包含的任意一个字符。
[^xyz]:负值字符集合。匹配未包含的任意字符。
\d:匹配一个数字字符。等价于 [0-9]。
\D:匹配一个非数字字符。等价于 [^0-9]。
\s:匹配任何空白字符,包括空格、制表符、换页符等。
\S:匹配任何非空白字符。
\w:匹配包括下划线的