1. 寫一個正則表達(dá)式判斷一個字符串是否是ip地址
規(guī)則:一個ip地址由4個數(shù)字組成,每個數(shù)字之間用.連接。每個數(shù)字的大小是0-255
255.189.10.37 正確
256.189.89.9 錯誤
import re
from re import fullmatch
"""
255
1 - 9 [1-9]
10 - 99 [1-9]\d
100 - 199 1\d\d
200 - 249 2[0-4]\d
250 - 255 25[0-5]
"""
re_str = r'((([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]|[1- 9]\d|1\d\d|2[0-4]\d|25[0-5]))'
result = fullmatch(re_str, '255.189.10.37')
result1 = fullmatch(re_str,'256.189.89.9 ')
print(result)
print(result1)
2. 計(jì)算一個字符串中所有的數(shù)字的和
例如:字符串是:‘hello90abc 78sjh12.5’ 結(jié)果是90+78+12.5 = 180.5
import re
from re import fullmatch
"""
90 - [1-9]\d*\.?\d*
78 -
12.5 -
"""
sum = 0
re_str = r'[1-9]\d*\.?\d*'
result = re.findall(re_str, 'hello90abc 78sjh12.5')
for num in result:
sum += float(num)
print(sum)
3. 驗(yàn)證輸入的內(nèi)容只能是漢字
re_str = r'([\u4e00-\u9fa5])'
result = fullmatch(re_str, input('請輸入一個字符:'))
if result != 0:
print('是漢字!')
else:
print('不是漢字!')
4. 電話號碼的驗(yàn)證
中國移動號段:182、183、184、187、188、
中國聯(lián)通號段:185、186
中國電信號段: 180 、181 、
130 131 132 133 134 135 136、137、138、139
145 147
50 51 52 53 55 56 57 58 59
166
71 73 76 77 78
81-88
re_str = r'13\d{8}|14[57]\d{8}|15[123567890]\d{8}|166\d{8}|17[13678]{8}|18[1-8]{8}'
result = fullmatch(re_str,input('請輸入一個電話號碼:'))
print(result)
if result != 0:
print('是電話號碼!')
else:
print('不是電話號碼!')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。