編程|網路
1. 解釋Regex <a\s+href\s*=\s*""?([^"" >]+)""?>(.+)</a>各部分代表的含義。
【解答】 此Regex用於匹配源檔案中類似於搜狐新聞的字串,各部分表示的含義為:
\s+ 一個或多個空白字元
href 後接 HTML 錨點中的確切文本
\s* 零個或多個空白字元
= 後接 HTML 錨點中的確切文本
\s* 零個或多個空白字元
""? 零或無引號(轉義的)
( 定義子字串(錨點 URL)的組的起始點。
[^"" >]+ 任一字元的一個或多個匹配項,括弧中的字元除外。
) 定義子字串的第一組的結束
""? 零或無引號(轉義的)
> 後接 HTML 錨點中的確切文本
(.+) 與任一字元(錨點文本)匹配的組。
結束 HTML 錨點的確切文本
2. 下面是檢查輸入字串是否為有效電子郵件的Regex:
^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$
試解釋各部分的含義。
【解答】
[\w-]+
一個或多個任一字元(a-z、A-Z、0-9 以及底線)或短劃線。在@字元兩邊,確保地址形式為name@domainname。
\.
一個轉義點號。(不帶反斜線,一個點號與除分行符號外的任意單個字元匹配。)以此確保網域名稱中至少有一個點號。
*?
對前面的運算式,非貪婪(non-greedy,即最小)地尋找零次或多次匹配。
([\w-]+\.)*?
以上三個運算式的組合:
對於包含一個或多個任一字元(a-z、A-Z、0-9 以及底線)或短劃線並且後面只跟一個點號的運算式,非貪婪地尋找零次或多次匹配。
3. 寫出符合下列要求的Regex:
1) 要求4-8個英文字母。
2) 不能包含字母,至少1個字元。
3) 至少3個數字。
4) 至少3個字元。
5) 至少3個英文字母。
6) 任一字元。
7) 3個字母或數字,如123,r3a等。
8) 3個點。
9) @前至少有1個字元,@後至少有3個字元。
10) 必須輸入左括弧。
【解答】
1) [a-zA-Z]{4,8}
2) [^a-zA-Z]{1,}
3) [0-9]{3,}
4) {3,}
5) [a-zA-Z]{3,}
6) .{0,}
7) [A-Za-z0-9]{3}
8) \.{3}
9) .{1,}@ .{3,}
10) \(