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
- 001輸出第二個整數
- 輸出(1)
- /* 數字倒序輸出 題目描述 輸入10個數字,然後逆序輸出。 輸入 十個整數 輸出 逆序輸出,空格分開 樣例輸入 1 2 3 4 5 6 7 8 9 0 樣例輸出 0 9 8 7 6 5 4 3 2
- 1.輸入輸出
- python ----輸入輸出 變數Python變數
- Python輸入和輸出(IO)Python
- python 標準輸入輸出Python
- 04 #### `__str__` , 輸出物件物件
- 1.變數and輸入輸出變數
- ACM的Python版輸入輸出ACMPython
- python輸出hello worldPython
- python 輸出重定向Python
- Python資料的輸入與輸出Python
- Python教程:7. 輸入和輸出Python
- python基礎篇-輸入和輸出Python
- python:檔案的輸入與輸出Python
- 輸入輸出
- 基本的python知識 (輸入和輸出)Python
- 一、輸入一個數(這裡用函式實現) 1.輸出它是幾位數 2.逆序輸出 3.正序輸出函式
- python如何輸出日誌?Python
- 新手學python之Python的輸入輸出函式Python函式
- 7-1 jmu-python-輸入輸出-計算字串中的數Python字串
- python實現:輸入2個整形數字,輸出最大值Python
- 標準輸出也可以是一個共享資源
- 輸入輸出流
- 輸出
- L1-023 輸出GPLT
- python字串格式化輸出Python字串格式化
- python日誌重複輸出Python
- python的幾種輸出方式Python
- python輸出如何不換行?Python
- python輸出時如何換行Python
- Python如何從大到小輸出三個數?Python
- 輸入十個整數,輸出其中質數
- 輸入一個數倒序輸出(遞迴)遞迴
- Java 輸入輸出流Java
- 【C++】輸入輸出C++