python的re用法
Python的re用法
在Python中,re模块提供了对正则表达式的支持。使用正则表达式可以在字符串中寻、匹配和替换指定的模式,极大地方便了文本处理操作。下面是一些常用的re模块的用法,以及详细的讲解。
1. 寻匹配模式
通过使用re模块的search()函数,可以在字符串中寻与给定正则表达式模式匹配的子字符串。
import re
pattern = r"apple"
string = "I have an apple."
match = (pattern, string)
print(())  # 输出: "apple"
2. 查所有匹配模式
使用re模块的findall()函数,可以到字符串中所有与给定正则表达式模式匹配的子字符串。
import re
pattern = r"ca+t"
string = "cat, cot, caat, cut"
matches = (pattern, string)
print(matches)  # 输出: ['cat', 'caat']
3. 匹配开头和结尾
可以使用re模块的match()函数,判断一个字符串是否以给定的正则表达式模式开头。
import re
pattern = r"^I"
string = "I love Python."
match = (pattern, string)
print(match)  # 输出: < object; span=(0, 1), match='I'>
# 使用re模块的search函数也可以达到相同效果
match = (pattern, string)
print(match)  # 输出: < object; span=(0, 1), match='I'>
使用re模块的search()函数,判断一个字符串是否以给定的正则表达式模式结尾。
import re
pattern = r"Python\.$"
string1 = "I love Python."
string2 = "I love Python3."
match1 = (pattern, string1)
match2 = (pattern, string2)
print(match1)  # 输出: < object; span=(7, 14), match='Python.'>
print(match2)  # 输出: None
4. 替换匹配模式
使用re模块的sub()函数,可以替换字符串中与给定正则表达式模式匹配的子字符串。
import re
pattern = r"apple"
string = "I have an apple."
new_string = (pattern, "orange", string)
print(new_string)  # 输出: "I have an orange."
5. 切分字符串
通过使用re模块的split()函数,可以将字符串按照给定的正则表达式模式进行切分。
import re
pattern = r"\s"
string = "I love Python programming."
parts = (pattern, string)
print(parts)  # 输出: ['I', 'love', 'Python', 'programming.']
以上是一些常用的re模块的用法,希望对你学习和使用正则表达式有所帮助。如果想要更深入了解正则表达式的用法以及re模块的其他功能,请查阅Python官方文档。
注意:在使用re模块时,建议尽量使用原始字符串(使用r"")定义正则表达式模式,以避免
转义字符带来的问题。
python正则表达式判断6. 捕获分组
通过在正则表达式模式中使用括号,可以将模式中的某一部分定义为一个分组。使用re模块的group()函数,可以获取匹配到的分组。
import re
pattern = r"(\w+)\s(\w+)"
string = "John Smith"
match = (pattern, string)
print(())  # 输出: "John Smith"
print((1))  # 输出: "John"
print((2))  # 输出: "Smith"
7. 忽略大小写
如果希望在匹配模式时忽略大小写,可以向re模块的函数中传入`参数,或者使用(?i)`标志。
import re
pattern = r"apple"
string = "I have an APPLE."
match = (pattern, string, )
print(match)  # 输出: < object; span=(7, 12), match='APPLE'>
8. 多行匹配
默认情况下,re模块的函数将字符串视为单行,即忽略换行符。如果希望在匹配模式时考虑换行符,可以向函数中传入`参数,或者使用(?m)`标志。
import re
pattern = r"^I"
string = "I love\nPython."
match = (pattern, string, )
print(match)  # 输出: < object; span=(0, 1), match='I'>
9. 非贪婪匹配
正则表达式的默认匹配模式是贪婪模式,即尽可能多地匹配字符。如果希望匹配尽可能少的字符,可以在匹配模式后加上?标志。
import re
pattern = r"a.*b"
string = "aabab"
match = (pattern, string)
print(())  # 输出: "aabab"
pattern = r"a.*?b"
string = "aabab"
match = (pattern, string)
print(())  # 输出: "aab"
以上是一些常用的re模块的用法,希望对你学习和使用正则表达式有所帮助。如果想要更深入了解正则表达式的用法以及re模块的其他功能,请查阅Python官方文档。