一、正则表达式的基础知识
正则表达式是一种描述字符串特征的语法规则,它可以帮助我们匹配、搜索、替换字符串。
在Python中,使用re模块可以轻松地编写正则表达式程序。
下面是一些正则表达式的基本符号:
. 匹配任意字符 ^ 匹配字符串的开头 $ 匹配字符串的结尾 * 匹配前一个字符0次或多次 + 匹配前一个字符1次或多次 ? 匹配前一个字符0次或1次 {m} 匹配前一个字符m次 {m,n} 匹配前一个字符m到n次
二、python中re模块常用函数
re模块提供了很多函数用于字符串匹配与替换。
1. re.search(pattern, string)
在字符串中查找符合pattern的子串,返回一个匹配对象。
import re string = "hello world" pattern = r"world" match = re.search(pattern, string) if match: print("Matched!") else: print("Not matched!")
2. re.match(pattern, string)
在字符串的开头查找符合pattern的子串,返回一个匹配对象。
import re string = "hello world" pattern = r"hello" match = re.match(pattern, string) if match: print("Matched!") else: print("Not matched!")
3. re.findall(pattern, string)
查找字符串中所有符合pattern的子串,返回一个列表。
import re string = "hello world" pattern = r"l" matches = re.findall(pattern, string) print(matches)
4. re.sub(pattern, repl, string)
替换字符串中的符合pattern的子串为repl。
import re string = "hello world" pattern = r"world" repl = "python" new_string = re.sub(pattern, repl, string) print(new_string)
三、常用的正则表达式实例
1. 匹配邮箱地址
邮箱地址的规则比较复杂,下面是一个基本的正则表达式,可以匹配大部分邮箱地址。
import re pattern = r"\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}" string = "my email is example@example.com" match = re.search(pattern, string) print(match.group())
2. 匹配网址
下面是一个基本的正则表达式,可以匹配大部分网址。
import re pattern = r"(?i)http[s]?://(?:[a-z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+" string = "Visit my website: https://www.example.com" match = re.search(pattern, string) print(match.group())
3. 替换字符串中的数字
下面是一个正则表达式,可以将字符串中的数字替换成#。
import re pattern = r"\d+" string = "The price is $123.456." new_string = re.sub(pattern, "#", string) print(new_string)
四、总结
正则表达式是一种非常强大的工具,可以帮助我们轻松地完成字符串匹配与替换。在Python中,使用re模块可以很方便地编写正则表达式程序。掌握正则表达式的基础知识和常用函数,可以有效地提高程序开发效率。