Loading... ### 正则表达式 (Regular Expressions, 简称re) 入门 正则表达式是一种用于匹配字符串模式的工具,被广泛应用于文本处理和数据提取。它通过一种紧凑的语法表达字符串的特定模式,用于搜索、替换、分割等操作。Python中的 `re` 模块提供了对正则表达式的支持,是文本处理的强大工具。 #### 1. 基本概念 正则表达式由字符和元字符组成。字符代表它们自身,而元字符则具有特殊意义,用于构建复杂的模式。 - **普通字符**:匹配自身,如 `a`匹配字符 `a`。 - **元字符**:具有特殊功能的字符,如 `.`、`*`、`+`、`?`、`^`、`$` 等。 #### 2. 常用元字符及其含义 - `.`:匹配任意单个字符(除换行符)。 - `^`:匹配字符串的开始位置。 - `$`:匹配字符串的结束位置。 - `*`:匹配前一个字符0次或多次。 - `+`:匹配前一个字符1次或多次。 - `?`:匹配前一个字符0次或1次。 - `{n}`:精确匹配n次。 - `{n,m}`:匹配n到m次。 - `[]`:匹配括号内的任意字符,如 `[abc]`匹配 `a`、`b`或 `c`。 - `|`:表示或,如 `a|b`表示匹配 `a`或 `b`。 - `()`:分组,捕获子表达式。 #### 3. 常见用法 以下是 Python 中使用 `re` 模块的常见操作: 1. **匹配字符串** ```python import re pattern = r"\d+" # 匹配一个或多个数字 text = "The year is 2023." match = re.search(pattern, text) if match: print(match.group()) # 输出 2023 ``` `re.search()` 函数用于在字符串中查找匹配的第一个位置。 2. **替换字符串** ```python text = "The price is 100 dollars." new_text = re.sub(r"\d+", "200", text) print(new_text) # 输出 "The price is 200 dollars." ``` `re.sub()` 用于替换匹配到的子字符串。 3. **分割字符串** ```python text = "apple, orange; banana" fruits = re.split(r"[;,\s]+", text) print(fruits) # 输出 ['apple', 'orange', 'banana'] ``` `re.split()` 根据正则表达式分割字符串。 4. **查找所有匹配** ```python text = "Call 911 or 112 in emergency." numbers = re.findall(r"\d+", text) print(numbers) # 输出 ['911', '112'] ``` `re.findall()` 返回字符串中所有与正则表达式匹配的部分。 #### 4. 贪婪与懒惰匹配 正则表达式中的量词(如 `*`, `+`, `?`)默认是贪婪的,即它们会尽可能多地匹配字符。如果希望它们变为懒惰匹配,可以在量词后加上 `?`。 - **贪婪匹配**:`.*` 会尽可能多地匹配字符。 - **懒惰匹配**:`.*?` 会尽可能少地匹配字符。 ### 总结 正则表达式是一种强大的文本处理工具,通过学习基本的元字符、常用方法和匹配规则,开发者可以高效处理各种字符串操作需求。掌握正则表达式的基础,将为数据处理、日志分析、Web开发等领域提供极大的帮助。 最后修改:2024 年 08 月 27 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏