正则表达式是一种用于处理字符串的强大工具,它有自己的语法和应用规则。Python中的正则表达式通过内置模块re来实现。

首先,我们需要导入re模块。在Python中使用正则表达式之前,我们需要使用import语句导入re模块。

import re

接下来是一些基本符号和规则:

  1. .:匹配任何字符(除了换行符)。
  2. ^:匹配字符串开始。
  3. $:匹配字符串结束。
  4. *:前一个字符0次或无限次扩展。
  5. +:前一个字符1次或无限次扩展。
  6. ?:前一个字符0次或1次扩展。

例如:

# 匹配任何以a开始、以b结束、中间有0个或多个c的字符串
pattern = re.compile('^ac*b$')

还有更复杂的规则:

7.{n}: 前一个字符出现n 次。
8.{n,}: 前一个字符至少出现 n 次。
9.{,m}: 前面的元素最多重复 m 次(不包括 m).
10.{n,m}: 扩展前面元素至少 n 次不超过 m 次。

例如:

# 匹配包含a后面跟着2到4个b的字符串
pattern = re.compile('ab{2,4}')

字符集合:

11.[abc]:匹配a或b或c。
12.[^abc]:匹配除了a、b、c之外的字符。
13.[a-z]:匹配任何小写字母。
14.[A-Z]:匹配任何大写字母。

例如:

# 匹配包含任意小写字母的字符串
pattern = re.compile('[a-z]')

特殊字符:

  1. \d: 任意一个数字,等价于 [0-9]
  2. \D: 除了数字都可以,等价于 1
  3. \s: 包括空格, 制表符, 换行符等空白字符的其中一个.
  4. \S: 除了空白符外的所有.
  5. \w: 单词字符,包括 a-z, A-Z, 0-9 和下划线.
  6. \W: 非单词字符.

例如:

# 匹配包含至少一个数字和至少一个非单词(特殊)字符的字符串
pattern = re.compile('\d+\W+')

正则表达式主要有以下几种方法:

1)match()函数: 如果正则表达式在字符串开始处找到模式,则返回相应match对象;如果没有找到,则返回None。

2)search()函数: 搜索整个字符串以查找与模式相匹配项。如果成功,则返回Match对象;如果没有找到,则返回None。

3)findall()函数: 返回一个包含所有匹配字符串的列表。

4)split()函数: 根据模式的匹配项来分割字符串,返回一个列表。

5)sub()函数: 使用指定的替换项替换模式的所有匹配项,然后返回新字符串。

例如:

import re

text = "Hello, my phone number is 1234567890 and my friend's number is 0987654321."

# 使用findall找出所有电话号码
numbers = re.findall('\d{10}', text)
print(numbers) # 输出:['1234567890', '0987654321']

# 使用sub将电话号码替换为星号
masked_text = re.sub('\d{10}', '**********', text)
print(masked_text) # 输出:"Hello, my phone number is ********** and my friend's number is **********."

以上就是Python中正则表达式基础知识和使用方法。正则表达式是一种强大而灵活的工具,但也很复杂。理解和使用它需要时间和实践。希望这个简介能帮助你开始学习Python中正则表达式。


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。


  1. 0-9
蓝易云是一家专注于香港及国内数据中心服务的提供商,提供高质量的服务器租用和云计算服务、包括免备案香港服务器、香港CN2、美国服务器、海外高防服务器、国内高防服务器、香港VPS等。致力于为用户提供稳定,快速的网络连接和优质的客户体验。
最后修改:2023 年 09 月 27 日
如果觉得我的文章对你有用,请随意赞赏