正则表达式基础
正则表达式是一种用来匹配文本的工具,广泛应用于数据处理,文本查找和替换。正则表达式由一些特殊字符和普通字符组成,用来描述目标文本的特征。
常用元字符
以下列举了一些常用的正则表达式元字符:
元字符 | 描述 |
---|---|
. |
匹配除换行符以外的任意字符。 |
^ |
匹配字符串的开头。 |
$ |
匹配字符串的结尾。 |
* |
匹配前一个字符出现零次或多次。 |
+ |
匹配前一个字符出现一次或多次。 |
? |
匹配前一个字符出现零次或一次。 |
{m} |
匹配前一个字符出现 m 次。 |
{m,} |
匹配前一个字符出现至少 m 次。 |
{m,n} |
匹配前一个字符出现 m 至 n 次。 |
[] |
匹配来自字符集中任意一个字符。 |
[^] |
不匹配来自字符集中任意一个字符。 |
\ |
转义字符,使后面的字符具有特殊功能。 |
常用模式
以下列举了一些常用的正则表达式模式:
匹配数字
使用\d
来匹配数字,例如:
import re
text = "Buy 2 get 1 free"
match = re.search('\d+', text)
print(match.group(0)) # 2
匹配字母
使用\w
来匹配字母,例如:
import re
text = "Hello, world!"
match = re.search('\w+', text)
print(match.group(0)) # Hello
匹配空格
使用\s
来匹配空格,例如:
import re
text = "Python is a programming language"
match = re.search('\s+', text)
print(match.group(0)) # 一个空格
常用方法
Python中的re
模块提供了多个函数来进行正则表达式的操作。以下是一些常用方法:
re.search()
re.search(pattern, string, flags=0)
在字符串中匹配正则表达式,返回第一个匹配对象。例如:
import re
text = "Python is a programming language"
match = re.search('programming', text)
print(match.group(0)) # programming
re.findall()
re.findall(pattern, string, flags=0)
在字符串中查找所有符合条件的字符串,返回一个列表。例如:
import re
text = "the price is 19.99 dollars, and 29.99 dollars for two"
matches = re.findall('\d+\.\d+', text)
print(matches) # ['19.99', '29.99']
re.sub()
re.sub(pattern, repl, string, count=0, flags=0)
在字符串中查找并替换符合条件的字符串,返回替换后的字符串。例如:
import re
text = "cat,cow,dog"
text = re.sub(',', ';', text)
print(text) # cat;cow;dog
结论
正则表达式是一种强大的文本匹配工具,可以用于查找、替换、分割等各种操作。在Python中,使用re
模块进行操作十分方便,灵活性也很高。当然,正则表达式的学习需要一些时间和经验,但是对于熟练的程序员来说,它是一个非常有用的工具。