1. 程式人生 > >Python中正則表示式re.match的用法

Python中正則表示式re.match的用法

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('非數字')