正则表达式基础

正则表达式基础

正则表达式是一种用来匹配文本的工具,广泛应用于数据处理,文本查找和替换。正则表达式由一些特殊字符和普通字符组成,用来描述目标文本的特征。

常用元字符

以下列举了一些常用的正则表达式元字符:

元字符 描述
. 匹配除换行符以外的任意字符。
^ 匹配字符串的开头。
$ 匹配字符串的结尾。
* 匹配前一个字符出现零次或多次。
+ 匹配前一个字符出现一次或多次。
? 匹配前一个字符出现零次或一次。
{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模块进行操作十分方便,灵活性也很高。当然,正则表达式的学习需要一些时间和经验,但是对于熟练的程序员来说,它是一个非常有用的工具。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程