Python的正则表达式


正则表达式可以定义为用于在字符串中搜索模式的字符序列。模块重新提供了在python程序中使用正则表达式的支持。如果在使用正则表达式时出现错误,则re模块会抛出异常。

 

该重模块必须导入到使用正则表达式功能的python。

 

import re

 

 

正则表达式函数

python中使用了以下正则表达式函数。

 

SN 
功能
描述
1match此方法将字符串中的正则表达式模式与可选标志匹配。如果在字符串中找到匹配则返回true,否则返回false。
2search
如果在字符串中找到匹配项,则此方法返回匹配对象。
3findall它返回一个列表,其中包含字符串中模式的所有匹配项。
4split
返回在每个匹配中已拆分字符串的列表。
5sub替换字符串中的一个或多个匹配项。

               


 

创建正则表达式

可以通过使用元字符,特殊序列和集合的混合来形成正则表达式。

 

元字符

元字符是具有指定含义的字符。

 

元字符
描述
示例
[]                
它代表一组字符。
“[AZ]”
\               
它代表了特殊的序列。 
“\ r”
。                
它表示任何角色出现在某个特定的地方。
“Ja.v.”
^        
它表示字符串开头的模式。       
 “^的Java”
$            
它表示字符串末尾的模式。    
“点”
*               
 它表示字符串中出现零个或多个模式。
“你好*”
+                
它表示字符串中一个或多个模式的出现。
“你好+”
{}                
字符串的指定出现次数。
“Java的{2}”
|                
它代表这个或那个角色存在。
“Java的|点”
()            
捕获和分组    


特殊序列

特殊序列是包含\后跟其中一个字符的序列。

 

字符        描述

\一个        
如果指定的字符出现在字符串的开头,则返回匹配项。
\ b        
如果指定的字符出现在字符串的开头或结尾,则返回匹配项。
\乙        
如果指定的字符出现在字符串的开头但不在结尾处,则返回匹配项。
\ d        
如果字符串包含数字[0-9],则返回匹配项。
\ d        
如果字符串不包含数字[0-9],则返回匹配项。
\ S       
 如果字符串包含任何空格字符,则返回匹配项。
\ S        
如果字符串不包含任何空格字符,则返回匹配项。
\ W        
如果字符串包含任何单词字符,则返回匹配项。
\ W        
如果字符串不包含任何单词,则返回匹配项。
\ž        如果指定的字符位于字符串的末尾,则返回匹配项。

 

集合是在一对方括号内给出的一组字符。它代表了特殊的意义。

 

SN                

描述
1               
 [ARN]
如果字符串包含集合中的任何指定字符,则返回匹配项。
2[一个]       
 如果字符串包含a到n之间的任何字符,则返回匹配项。
3[^ ARN]        
如果字符串包含除a,r和n之外的字符,则返回匹配项。
4[0123]       
 如果字符串包含任何指定的数字,则返回匹配项。
5[0-9]       
 如果字符串包含0到9之间的任何数字,则返回匹配项。
6[0-5] [0-9]       
 如果字符串包含介于00和59之间的任何数字,则返回匹配项。
7[A-ZA-Z]        
如果字符串包含任何字母(小写或大写),则返回匹配项。

findall()函数

此方法返回一个列表,其中包含字符串中模式的所有匹配项的列表。它按照找到的顺序返回模式。如果没有匹配项,则返回空列表。

 

请考虑以下示例。

 

 

 

import re
str = "How are you. How is everything"
matches = re.findall("How", str)
print(matches)
print(matches)

 

 

输出:

 

['How', 'How']

 

 

匹配对象

匹配对象包含有关搜索和输出的信息。如果找不到匹配项,则返回None对象。

 

 

import re
 
 
 
str = "How are you. How is everything"
 
 
 
matches = re.search("How", str)
 
 
 
print(type(matches))
 
 
 
print(matches) #matches is the search object

 

输出:

 

 

<class'_sre.SRE_Match'>
 
<_sre.SRE_Match对象; span =(0,3),match ='How'>

 

 

 

Match对象方法

有与Match对象关联的以下方法。

span():返回包含匹配起始位置和结束位置的元组。

string():返回传递给函数的字符串。

group():返回匹配项的字符串部分。

 

import re
 
 
 
str = "How are you. How is everything"
 
 
 
matches = re.search("How", str)
 
 
 
print(matches.span())
 
 
 
print(matches.group())
 
 
 
print(matches.string)

 

 

输出:

 

(0, 3)
 
How
 
How are you. How is everything