logo
Loading...

REGEX:ASCII & url 問題 - Cupoy

您好,看了解答還是沒有很懂下面這兩部分的regex,可以比較詳細的說明嗎?下面我較清楚的說一下我哪裡...

REGEX:ASCII & url 問題

2020/03/22 下午 05:58
Python網路爬蟲討論版
觀看數:18
回答數:2
收藏數:0

您好,看了解答還是沒有很懂下面這兩部分的regex,可以比較詳細的說明嗎?下面我較清楚的說一下我哪裡不懂,共4小點問題...看了維基的ASCLL的說明還是沒有很懂他是甚麼。


hostname的名稱是以句號區隔所組成,每一個部分可以是ASCII字元、數字、連字號,但不能以連字號開始或結束,因此我們寫成:([a-z0-9]\.|[a-z0-9][-a-z0-9]*[a-z0-9]\.)+ 

這邊大概是說hostname的形式應該是"x.",這邊想請老師解釋:

1. [a-z0-9] 是什麼?

2. [-a-z0-9] 是什麼?跟上面那一個的差異?

3. [a-z0-9][-a-z0-9]*[a-z0-9] 是什麼?尤其是*的意思

URL的path 部分,可以有除了空白字元、控制字元<>(){}以外的大部分ASCII字元,因此我們寫成:[-a-z0-9_:@&?=+,.!\/~*\'%$]*

4. 這邊大概可以理解-a-z0-9是ASCLL,但後面那一串完全不懂是怎麼列出來的。

回答列表

  • 2020/03/22 下午 08:56
    Jeffrey
    贊同數:1
    不贊同數:0
    留言數:1

    在正則表達式當中,有許多符號具有特殊意義,例如

    1. 點符號 . 是用來表示任意字元的,

    2. 星號 * 是代表 0 次或以上,

    3. 加號 + 代表一次或以上,

    4. 用斜線 \ 代表跳出字元,此,當我們看到 \ 符號時,必須繼續向後看,才能知道其所代表的意義。

    5. \. 代表小數點符號 .

    6. 字元範圍。匹配指定範圍內的任意字元。例如,“[a-z]”可以匹配“a”到“z”範圍內的任意小寫字母字元。


  • 2020/03/23 上午 01:09
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    嗨,以下簡單回覆你的問題:


    1. ASCLL -> ASCII 才對

    2. [a-z0-9] 代表 a-z0-9 這 26 個小寫字母 + 10 個數字是符合條件的。[-a-z0-9]* 代表 -a-z0-9 這 26 個小寫字母 + 10 個數字 + 「-」符號是符合條件的,「*」號代表這個條件可以重複 N 次

    3. [a-z0-9][-a-z0-9]*[a-z0-9] 代表 ip 的規則是:第一個字是 [a-z0-9] 組成,中間是 N 個 [-a-z0-9] 的字,最後一個字是 [a-z0-9]。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃