一、search函数简介
re库是Python提供的正则表达式处理模块,而search函数是其中的一种匹配模式。search函数会在整个字符串中搜索给定的正则表达式,一旦找到匹配的部分就停止搜索并返回匹配对象Match object。
Match object包含了匹配的字符串、匹配开始和结束位置等等信息。而如果没有找到匹配的部分,search函数将返回None。
import re str = "Hello world! It's a beautiful day!" pattern = "beautiful" result = re.search(pattern, str) if result: print("Match found:", result.group()) else: print("No match found.")
二、Match object属性
除了包含被匹配的字符串,Match object还有许多其他有用的属性。
1、group()
group()函数返回被匹配到的字符串。
import re str = "Hello world! It's a beautiful day!" pattern = "beautiful" result = re.search(pattern, str) if result: print("Match found:", result.group()) else: print("No match found.")
2、start()
start()函数返回匹配字符串在原字符串中的开始位置。
import re str = "Hello world! It's a beautiful day!" pattern = "beautiful" result = re.search(pattern, str) if result: print("Match found at index:", result.start()) else: print("No match found.")
3、end()
end()函数返回匹配字符串在原字符串中的结束位置。
import re str = "Hello world! It's a beautiful day!" pattern = "beautiful" result = re.search(pattern, str) if result: print("Match ends at index:", result.end()) else: print("No match found.")
4、span()
span()函数返回匹配字符串在原字符串中的开始和结束位置。
import re str = "Hello world! It's a beautiful day!" pattern = "beautiful" result = re.search(pattern, str) if result: print("Match starts at index:", result.span()[0]) print("Match ends at index:", result.span()[1]) else: print("No match found.")
三、正则表达式的应用
正则表达式是处理字符串的强大工具,因为它允许我们根据模式匹配字符串,而不仅仅是匹配特定字符。
1、使用通配符
通配符是正则表达式中用于匹配任何字符的特殊字符。点号(.)是最基本的通配符,它匹配除了换行符以外的任何字符。
import re str = "Hello world! It's a beautiful day! How are you?" pattern = ".eautiful" result = re.search(pattern, str) if result: print("Match found:", result.group()) else: print("No match found.")
2、使用字符集
字符集是用于匹配一组字符中的任意一个字符的特殊字符。使用方括号([])表示字符集。
import re str = "Hello world! It's a beautiful day! How are you?" pattern = "[bh]." result = re.search(pattern, str) if result: print("Match found:", result.group()) else: print("No match found.")
3、使用元字符
元字符是正则表达式中有特殊含义的字符。其中最常用的元字符是^和$,它们分别表示匹配字符串的开头和结尾。
import re str = "Hello world! It's a beautiful day! How are you?" pattern = "^H.*u\?$" result = re.search(pattern, str) if result: print("Match found:", result.group()) else: print("No match found.")
4、使用分组
分组可以将正则表达式中的子模式分组,以便更好地控制匹配结果。使用圆括号(())表示分组。
import re str = "From: John Smith" pattern = "^From: (.*) <.*>$" result = re.search(pattern, str) if result: print("Match found:", result.group(1)) else: print("No match found.")