re.search()
是 Python 的正規表示式庫 re
中的一個方法,用於在字串中搜尋與正規表示式模式匹配的第一個位置,並返回一個匹配物件。如果沒有找到匹配項,則返回 None
。
以下是 re.search()
的基本用法和詳解:
基本語法
import re match = re.search(pattern, string, flags=0)
pattern
:要匹配的正規表示式模式。string
:要在其中搜尋的字串。flags
:可選引數,用於控制正規表示式的匹配方式。常見的標誌有re.IGNORECASE
(忽略大小寫)、re.MULTILINE
(多行匹配)等。
返回值
- 如果找到匹配項,
re.search()
返回一個匹配物件,該物件包含有關匹配的資訊,如匹配的位置、匹配的文字等。 - 如果沒有找到匹配項,返回
None
。
示例
import re # 示例 1: 查詢字串中的數字 string = "Hello, I have 123 apples and 456 oranges." match = re.search(r'\d+', string) if match: print("Found a number:", match.group()) # 輸出: Found a number: 123 # 示例 2: 查詢忽略大小寫的匹配項 string = "Hello, World! hello, python." match = re.search(r'hello', string, re.IGNORECASE) if match: print("Found a match:", match.group()) # 輸出: Found a match: Hello # 示例 3: 如果沒有找到匹配項 string = "No match here." match = re.search(r'\d+', string) if match: print("Found a number") else: print("No number found") # 輸出: No number found
匹配物件的方法
如果 re.search()
找到了匹配項並返回了一個匹配物件,你可以使用該物件的以下方法:
group()
: 返回匹配的文字。groups()
: 返回一個包含所有分組匹配的元組(如果正規表示式中有分組的話)。start()
: 返回匹配的起始位置。end()
: 返回匹配的結束位置(不包含該位置的字元)。span()
: 返回一個包含匹配起始和結束位置的元組。
注意
- 與
re.match()
不同,re.search()
會在整個字串中搜尋匹配項,而不僅僅是字串的開頭。 - 如果你需要獲取字串中所有匹配項的列表,可以使用
re.findall()
方法。