1. 寫(xiě)一個(gè)正則表達(dá)式判斷一個(gè)字符串是否是ip地址
規(guī)則:一個(gè)ip地址由4個(gè)數(shù)字組成泣懊,每個(gè)數(shù)字之間用.連接。每個(gè)數(shù)字的大小是0-255
255.189.10.37 正確
256.189.89.9 錯(cuò)誤
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ì)算一個(gè)字符串中所有的數(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('請(qǐng)輸入一個(gè)字符:'))
if result != 0:
print('是漢字簿姨!')
else:
print('不是漢字!')
4. 電話(huà)號(hào)碼的驗(yàn)證
中國(guó)移動(dòng)號(hào)段:182簸搞、183扁位、184、187趁俊、188域仇、
中國(guó)聯(lián)通號(hào)段:185、186
中國(guó)電信號(hào)段: 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('請(qǐng)輸入一個(gè)電話(huà)號(hào)碼:'))
print(result)
if result != 0:
print('是電話(huà)號(hào)碼择镇!')
else:
print('不是電話(huà)號(hào)碼!')