該模塊通過正則表達式匹配數據。
目前支持的操作符較少,部分操作符暫不支持。
示例:
import ureres = '''
$GNRMC,133648.00,A,3149.2969,N,11706.9027,E,0.055,,311020,,,A,V*18
$GNGGA,133648.00,3149.2969,N,11706.9027,E,1,24,1.03,88.9,M,,M,,*6C
$GNGLL,3149.2969,N,11706.9027,E,133648.00,A,A*7A
$GNGSA,A,3,31,26,11,194,27,195,08,09,03,193,04,16,1.41,1.03,0.97,1*31
'''r = ure.search("GNGGA(.+?)M", res)
print(r.group(0))
編譯并生成正則表達式對象
ure.compile
ure.compile(regex)
用于編譯正則表達式,生成一個正則表達式對象,供 match() 和 search() 這兩個函數使用。
參數描述:
regex?
- 正則表達式,字符串類型。
匹配
ure.match
ure.match(regex, string)
將正則表達式對象 與 string 匹配,匹配通常從字符串的起始位置進行。
參數描述:
regex?
- 正則表達式,字符串類型。string?
- 需要匹配的字符串數據。
返回值描述:
匹配成功返回一個匹配的對象,否則返回None。
查找
ure.search
ure.search(regex, string)
掃描整個字符串并返回第一個成功的匹配。
參數描述:
regex?
- 正則表達式,字符串類型。string?
- 需要查找的字符串數據。
返回值描述:
匹配成功返回一個匹配的對象,否則返回None。
匹配單個字符串
match.group
match.group(index)
匹配 match() 和 serach() 方法返回的對象。
參數描述:
index?
- 整型,正則表達式中,group()用來提出分組截獲的字符串, index=0返回整體,根據編寫的正則表達式進行獲取,當分組不存在時會拋出異常。
返回值描述:
返回匹配的整個表達式的字符串。
常量
支持的操作符
‘.’?
- 字符類型,匹配任意字符。‘[]’?
- 字符類型,匹配字符集合,支持單個字符和一個范圍,包括負集。‘^’?
- 字符類型,匹配字符串的開頭。‘$’?
- 字符類型,匹配字符串的結尾。‘?’?
- 字符類型,匹配零個或前面的子模式之一。‘*’?
- 字符類型,匹配零個或多個先前的子模式。‘+’?
- 字符類型,匹配一個或多個先前的子模式。‘??’?
- 字符類型,非貪婪版本的 ? ,匹配0或1。‘*?’?
- 字符類型,非貪婪版本的*,匹配零個或多個。‘+?’?
- 字符類型,非貪婪版本的+,匹配一個或多個。‘\|’?
- 字符類型,匹配該操作符的左側子模式或右側子模式。‘\d’?
- 字符類型,數字匹配。‘\D’?
- 字符類型,非數字匹配。‘\s’?
- 字符類型,匹配空格。‘\S’?
- 字符類型,匹配非空格。‘\w’?
- 字符類型,匹配”單詞字符” (僅限ASCII)。‘\W’?
- 字符類型,匹配非“單詞字符”(僅限ASCII)。
不支持的操作符
‘{m,n}’?
- 重復次數。‘(?P<name>...)’?
- 命名組。‘(?:...)’?
- 非捕獲組。‘\b’?
- 更高級的斷言。‘\B’?
- 更高級的斷言。‘\r’?
- 特殊字符轉義,改用Python自己的轉義。‘\n’?
- 特殊字符轉義,改用Python自己的轉義