軟件測試中,正則表達式match search 和findall之間的區別是什麼

正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。

Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。

re 模塊使 Python 語言擁有全部的正則表達式功能。

compile 函數根據一個模式字符串和可選的標誌參數生成一個正則表達式對象。該對象擁有一系列方法用於正則表達式匹配和替換。

re 模塊也提供了與這些方法功能完全一致的函數,這些函數使用一個模式字符串做為它們的第一個參數。

re.match函數

re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。

函數語法

re.match(pattern, string, flags=0)

函數參數說明:

軟件測試中,正則表達式match search 和findall之間的區別是什麼

匹配成功re.match方法返回一個匹配的對象,否則返回None。

re模塊的使用過程:

#coding=utf-8
# 導入re模塊
import re
# 使用match方法進行匹配操作
result = re.match(正則表達式,要匹配的字符串)

我們可以使用group(num) 或 groups() 匹配對象函數來獲取匹配表達式。

軟件測試中,正則表達式match search 和findall之間的區別是什麼

#coding=utf-8
# 導入re模塊
import re
# 使用match方法進行匹配操作
result = re.match(正則表達式,要匹配的字符串)
# 如果上一步匹配到數據的話,可以使用group方法來提取數據
result.group()

re 模塊案例:

匹配以itcast開頭的語句

 #coding=utf-8

import re

result = re.match("itcast","itcast.cn")

result.group()

運行結果為:
itcast

re.search

re.match 只能在起始位置匹配,而re.search可以掃描整個字符串並返回第一個成功的匹配

需求:匹配出文章閱讀的次數

#coding=utf-8
import re

ret = re.search(r"\\d+", "閱讀次數為 9999")
ret.group()

運行結果:

'9999'

re.findall

re.match和re.search兩個都只能找到一個匹配結果,而findall可以找到所有滿足匹配條件的結果,並以列表的形式返回

需求:統計出python、c、c++相應文章閱讀的次數

#coding=utf-8import reret = re.findall(r"\\d+", "python = 9999, c = 7890, c++ = 12345")print(ret)

運行結果:

['9999', '7890', '12345']

三者之間的區別:

22

軟件測試中,正則表達式match search 和findall之間的區別是什麼

,


分享到:


相關文章: