python RE match物件 m.group(0)可以輸出 m.group(1)為啥不可以輸出第二個呢?
import re
match = re.search(r’[1-9]\d{5}’ ,‘BIT233189’)
if match:
… print(match.group(0))
…
233189
import re
m = re.search(r’[1-9]\d{5}’, ‘bvcdh345678 jiki876989’)
m.string
‘bvcdh345678 jiki876989’m.re
re.compile(’[1-9]\d{5}’)m.pos
0m.endpos
22
m.group(0)
‘345678’m.start(0)
5m.end(0)
11m.span(0)
(5, 11)
m.group(0)可以輸出 m.group(1)為啥不可以輸出第二個呢?
group和groups是兩個不同的函式。一般,m.group(N) 返回第N組括號匹配的字元。而m.group() == m.group(0) == 所有匹配的字元,與括號無關,這個是API規定的。m.groups() 返回所有括號匹配的字元,以tuple格式。m.groups() == (m.group(0), m.group(1), …)
正規表示式中,group()用來提取分組截獲的字串,()用來分組。
組是通過 “(” 和 “)” 元字元來標識的。 “(” 和 “)” 有很多在數學表示式中相同的意思;它們一起把在它們裡面的表示式組成一組。舉個例子,你可以用重複限制符,象 , +, ?, 和 {m,n},來重複組裡的內容,比如說(ab) 將匹配零或更多個重複的 “ab”。
如果不引入括號,整個個表示式作為一個組,是group(0)
對於題目中的例子:m = re.match("([abc])+", “abc”)+號在括號外面。括號最多匹配到一個字元,要麼是a, 要麼是c,這個python引擎匹配的是末尾的c。而m.group() == m.group(0) 這個返回的是整個匹配的字串"abc".
相關文章
- python系列--輸出0x格式的十六進位制輸出Python
- Python 輸入和輸出Python
- Python的輸入輸出Python
- 1.變數and輸入輸出變數
- Python輸入和輸出(IO)Python
- python ----輸入輸出 變數Python變數
- python 標準輸入輸出Python
- 04 #### `__str__` , 輸出物件物件
- ACM的Python版輸入輸出ACMPython
- 初學Python(六)——輸入輸出Python
- 輸入輸出
- Python教程:7. 輸入和輸出Python
- python基礎篇-輸入和輸出Python
- python:檔案的輸入與輸出Python
- Python資料的輸入與輸出Python
- python 輸出顏色Python
- Python輸出日誌Python
- python輸出hello worldPython
- python 輸出重定向Python
- 一、輸入一個數(這裡用函式實現) 1.輸出它是幾位數 2.逆序輸出 3.正序輸出函式
- 輸入輸出流
- 輸出
- 基本的python知識 (輸入和輸出)Python
- python基本語法_輸入輸出詳解Python
- 7-1 jmu-python-輸入輸出-計算字串中的數Python字串
- console.table()輸出物件更為直觀物件
- python實現:輸入2個整形數字,輸出最大值Python
- python如何輸出日誌?Python
- Python 輸出不換行Python
- python帶顏色輸出Python
- Python格式化輸出Python
- 有關fastjson輸出的時候double不輸出後面.0的問題ASTJSON
- 【C++】輸入輸出C++
- Java 輸入輸出流Java
- 輸入輸出系統
- JAVA輸入輸出流Java
- 為啥用ip不可以訪問知乎,而百度卻可以?
- 新手學python之Python的輸入輸出函式Python函式