Python中的正则表达式模块是re模块,它提供了一系列用于处理正则表达式的方法和函数。
常用的正则表达式符号:
\d: 匹配任意数字。
\D: 匹配任意非数字字符。
\w: 匹配任意字母、数字或下划线。
\W: 匹配任意非字母、数字或下划线字符。
\s: 匹配任意空白字符。
\S: 匹配任意非空白字符。
\b: 匹配单词的边界。
^: 匹配字符串的起始位置。
$: 匹配字符串的结束位置。
*: 匹配前面的元素零次或多次。
+: 匹配前面的元素一次或多次。
?: 匹配前面的元素零次或一次。
re 库采用 raw string 类型表示正则表达式,不包含转义符的字符串。表示为 r’text’
例如:r’[1-9]\d{5}’
r’ \d{3}- \d{8}| \d{4}- \d{7}’
string 类型,更繁琐。
例如:’[1-9] \d{5}’
’\d{3}-\d{8}| \{4}-\d{7}’
常见的正则表达式应用场景
-
查找匹配的字符串:re.search(pattern, string)方法用于在字符串中搜索匹配的内容,并返回第一个匹配的对象。pattern是正则表达式,string是要搜索的字符串。
示例:
import re # 在字符串中查找是否有数字 result = re.search(r'\d', 'Hello123World') if result: print("找到匹配的数字:", result.group()) else: print("没有找到匹配的数字")
输出为: 找到匹配的数字: 1
-
匹配字符串的开头或结尾:re.match(pattern, string)方法用于从字符串的开头开始匹配,如果开头的字符串与pattern匹配,则返回匹配对象。re.match()只会匹配一次,如果开头不匹配,则返回None。
示例:
import re # 判断字符串是否以字母开头 result = re.match(r'[a-zA-Z]', 'Hello123World') if result: print("字符串以字母开头") else: print("字符串不以字母开头")
输出为:字符串以字母开头
-
查找所有匹配的字符串:re.findall(pattern, string)方法用于在字符串中查找所有匹配的内容,并返回一个列表。pattern是正则表达式,string是要搜索的字符串。
示例:
import re # 查找字符串中的所有数字 numbers = re.findall(r'\d', 'Hello123World') print("找到的数字:", numbers)
输出为: 找到的数字: [‘1’, ‘2’, ‘3’]
-
替换匹配的字符串:re.sub(pattern, repl, string)方法用于在字符串中替换匹配的内容。pattern是正则表达式,repl是替换后的字符串,string是要操作的字符串。
示例:
import re # 替换字符串中的数字为* new_string = re.sub(r'\d', '*', 'Hello123World') print("替换后的字符串:", new_string)
输出为:替换后的字符串: Hello***World
这些是正则表达式在Python中的一些常见应用,但正则表达式的用途非常广泛,可以进行更复杂的匹配、提取和替换操作。有关更多的正则表达式语法和方法,请参考Python官方文档或其他相关教程。