作業(yè)16(正則表達(dá)式)

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ò)誤


re_str = r'((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])'

print(re.fullmatch(re_str, '255.189.10.37'))
print(re.fullmatch(re_str, '256.189.89.9'))


# 重點(diǎn):用正則匹配到一個(gè)數(shù)字是0-255
# 0-9 \d
# 10-99 [1-9]\d
#
# 100-255:
# 100-199: 1\d{2}
# 200-249: 2[0-4]\d
# 250-255: 25[0-5]
# """
#
# re_str = r'\d|[1-9]\d|(1\d{2}|2[0-4]\d|25[0-5])' # 匹配 0-255

2.寫(xiě)一個(gè)正則表達(dá)式可以匹配任意有效數(shù)字

123 正確; 23.34 正確; -123 正確; +12.34 正確; 0.232 正確; -0.233 正確

0123 錯(cuò)誤; 012.23 錯(cuò)誤; 00.23 錯(cuò)誤


re_str = r'[-+]?(0\.)?[1-9]\d*\.?\d+|0'
print(re.fullmatch(re_str, '31.'))

3.驗(yàn)證輸入的內(nèi)容只能是漢字

re_str = r'[\u4e00-\u9fa5]+'
print(re.fullmatch(re_str, '中國(guó)厲害了'))

4.電話(huà)號(hào)碼的驗(yàn)證

re_str = r'1[3-9]\d{9}'
print(re.fullmatch(re_str, '14988767891'))

5.驗(yàn)證輸入用戶(hù)名和QQ號(hào)是否有效并給出對(duì)應(yīng)的提示信息

要求:

用戶(hù)名必須由字母、數(shù)字或下劃線(xiàn)構(gòu)成且長(zhǎng)度在6~20個(gè)字符之間

QQ號(hào)是5~12的數(shù)字且首位不能為0

e_name = input('請(qǐng)輸入用戶(hù)名:')
if (re.fullmatch(r'[a-zA-Z\d_]{6,20}', re_name)) == None:
    print('用戶(hù)名輸入錯(cuò)誤!')
else:
    print('輸入正確!')

re_qq = input('請(qǐng)輸入QQ號(hào):')
if (re.fullmatch(r'[1-9]\d{4,11}', re_qq)) == None:
    print('QQ輸入錯(cuò)誤!')
else:
    print('輸入正確!')

6.驗(yàn)證是否是有效標(biāo)識(shí)符: 由字母、數(shù)字、_組成并且數(shù)字不能開(kāi)頭

re_str = r'[a-zA-Z_][\da-zA-Z_]+'
print(re.fullmatch(re_str, 'kjggf9877_'))

二、不定項(xiàng)選擇題

  1. 能夠完全匹配字符串“(010)-62661617”和字符串“01062661617”的正則表達(dá)式包括(ABD )
    A. r“(?\d{3})?-?\d{8}”
    B. r“[0-9()-]+”
    C. r“[0-9(-)]\d
    D. r“[(]?\d[)-]\d*”

  2. 能夠完全匹配字符串“c:\rapidminer\lib\plugs”的正則表達(dá)式包括(BC)
    A. r“c:\rapidminer\lib\plugs”
    B. r“c:\rapidminer\lib\plugs”
    C. r“(?i)C:\RapidMiner\Lib\Plugs” ?i:將后面的內(nèi)容的大寫(xiě)變成小寫(xiě)
    D. r“(?s)C:\RapidMiner\Lib\Plugs” ?s:?jiǎn)涡衅ヅ?/p>

  3. 能夠完全匹配字符串“back”和“back-end”的正則表達(dá)式包括(ABCD)
    A. r“\w{4}-\w{3}|\w{4}”
    B. r“\w{4}|\w{4}-\w{3}”
    C. r“\S+-\S+|\S+”
    D. r“\w\b-\b\w|\w*”

  4. 能夠完全匹配字符串“go go”和“kitty kitty”,但不能完全匹配“go kitty”的正則表達(dá)式包括(AD)
    A. r“\b(\w+)\b\s+\1\b”
    B. r“\w{2,5}\s*\1”
    C. r“(\S+) \s+\1”
    D. r“(\S{2,5})\s{1,}\1”

  1. 能夠在字符串中匹配“aab”,而不能匹配“aaab”和“aaaab”的正則表達(dá)式包括( BC)
    A. r“a*?b”
    B. r“a{,2}b”
    C. r“aa??b”
    D. r“aaa??b”
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、正則表達(dá)式語(yǔ)法 正則表達(dá)式是用匹配或者描述字符串的工具。 用處:a.判斷字符串是否滿(mǎn)足某個(gè)條件---判斷輸入的...
    魅影_0d2e閱讀 621評(píng)論 0 0
  • 正則表達(dá)式 正則表達(dá)式是用來(lái)匹配或者描述字符串的工具。 用處:a.判斷輸入的字符串是否是郵箱或者手機(jī)號(hào)。是否是IP...
    莫名ypc閱讀 1,600評(píng)論 0 0
  • 一、正則表達(dá)式語(yǔ)法 正則表達(dá)式是用來(lái)匹配或者描述字符串的工具。 用處:a.判斷字符串是否滿(mǎn)足某個(gè)條件 --> 判斷...
    xdxh閱讀 654評(píng)論 0 0
  • 一、正則表達(dá)式語(yǔ)法 正則表達(dá)式是用匹配或者描述字符串的工具。用處:a.判斷字符串是否滿(mǎn)足某個(gè)條件---判斷輸入的字...
    Sakura_flower閱讀 923評(píng)論 0 3
  • Python中的正則表達(dá)式(re) import rere.match #從開(kāi)始位置開(kāi)始匹配,如果開(kāi)頭沒(méi)有則無(wú)re...
    BigJeffWang閱讀 7,577評(píng)論 0 99

友情鏈接更多精彩內(nèi)容