首頁  >  文章  >  後端開發  >  為什麼正規表示式“\d”符合 IP 位址,如“78.46.92.168:8000”,而不是只符合數字?

為什麼正規表示式“\d”符合 IP 位址,如“78.46.92.168:8000”,而不是只符合數字?

Patricia Arquette
Patricia Arquette原創
2024-11-13 06:43:02119瀏覽

Why does the regex

使用正規表示式檢查整個字串

當嘗試使用正規表示式「d」來確定字串是否為數字時,它可以您會發現該模式也與「78.46.92.168:8000」等IP 位址相符。這可能會令人困惑,因為人們可能認為“d”僅匹配數字。要理解為什麼會發生這種情況,有必要了解「d」的行為。

理解「d」

「d」字元類別符合任何ASCII 範圍 (0-9) 內的單一數字字元。 「 」量詞表示前一個元素(在本例中為「d」)出現一次或多次,表示「d」將符合一個或多個數字的序列。

在範例字串“78.46. 92.168:8000”,序列“78”是“d”的有效匹配。它匹配前 78 個字符,而不是整個字串。由於匹配成功,程式碼繼續呼叫 doStuff()。

符合整個字串

匹配整個字串並確保它只包含數字,有必要使用更具體的正規表示式模式。

  • **新增「^」和"$":** 將「^」(字串開頭)和「$」(字串結尾)加入正規表示式可確保它符合整個輸入字串。例如,「^d $」只會符合僅由數字組成的字串。
  • 使用「isdigit()」:Python 在字串上提供了「isdigit()」方法,該方法傳回一個布林值,指示整個字串是否僅包含數字。例如,“78.46.92.168:8000”.isdigit() 將傳回 False,因為字串包含非數字字元。

以上是為什麼正規表示式“\d”符合 IP 位址,如“78.46.92.168:8000”,而不是只符合數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn