1.寫一個正則表達式判斷一個字符串是否是ip地址
規則:一個ip地址由4個數字組成,每個數字之間用.連接。
每個數字的大小是0-255
255.189.10.37 正確
256.189.89.9 錯誤
import re
re_str = r'(([0-1]?[0-9]?[0-9]?|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-1]?[0-9]?[0-9]?|[2][0-4][0-9]|[2][5][0-5])'
str1 = input('請輸入正確IP地址:')
print(re.fullmatch(re_str, str1))
2. 計算一個字符串中所有的數字的和
例如:字符串是:‘hello90abc 78sjh12.5’ 結果是90+78+12.5 = 180.5
import re
str2 = r'hello90abc 78sjh12.5'
result = re.findall('\d{2}\.?\d?', str2)
sum1 = 0
print(result)
for x in result:
sum1 += float(x)
print(sum1)
3. 驗證輸入的內容只能是漢字
import re
re_str = '[\u4e00-\u9fa5]+'
str1 = input('請輸入漢字:')
result = re.fullmatch(re_str, str1)
print(result)
if not result == None:
print('輸入的是漢字!')
else:
print('輸入錯誤,請輸入漢字')
4. 電話號碼的驗證
import re
re_str = r'^1(3|4|5|7|8)\d{9}$'
str1 = input('請輸入電話號碼:')
re_obj = re.compile(re_str)
result = re_obj.fullmatch(str1)
if result == None:
print('輸入有誤!')
else:
print('正確!')
5. 簡單的身份證號的驗證
import re
re_str = '^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|' \
'^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$'
str1 = input('請輸入身份證號碼:')
result = re.fullmatch(re_str, str1)
if result == None:
print('輸入錯誤!')
else:
print('輸入正確!')
選擇題:
- ABD 2.BC 3.ABCD 4.ACD 5.BC