Python中正則表示式re.match的用法
阿新 • • 發佈:2018-10-31
re.match(pattern, string, flags)
第一個引數是正則表示式,如果匹配成功,則返回一個Match,否則返回一個None;
第二個引數表示要匹配的字串;
第三個引數是標緻位,用於控制正則表示式的匹配方式,如:是否區分大小寫,多行匹配等等。
需要特別注意的是,這個方法並不是完全匹配。它僅僅決定在字串開始的位置是否匹配。所以當pattern結束時若還有剩餘字元,仍然視為成功。想要完全匹配,可以在表示式末尾加上邊界匹配符'$'
例如: match(‘p’,’python’)返回值為真;
match(‘p’,’www.python.org’)返回值為假。
再看一個例子,接收使用者輸入的內容,如果是數字的話將其轉為二進位制格式,如果不是則給予提示。
如何寫正則表示式?
如果寫成[0-9]+,則re.match的時候,只要開頭是數字的內容都會匹配成功:
例如:match('[0-9]+','1abc')是匹配成功的。
所以必須要加上邊界符,寫成'[0-9]+$'去進行匹配:
例如: match('[0-9]+$','1abc')這樣就不能匹配成功了,必須全部都是數字才可以。
以下是完整原始碼:
from re import match r='[0-9]+$' s = input('num:') if match(r,s): print('數字') s = int(s) code = '' while s!=0: code += str(s%2) s = s//2 print(code[::-1]) else: print('非數字')