看板 Programming 關於我們 聯絡資訊
※ 引述《hoverwolf (陷入無盡幸福深淵)》之銘言: : ●驗證郵遞區號 : 1. 3位數字,如198 : 2. 3位數字加2位數字,如198-24 : 3. 3位數字加4位數字,如198-3216 : 可檢查出上列三種郵遞區號格式是:^\d{3}-d{4}$|^\d{3}=\d{2}$|^\d{3} : 上面的格式實在看不懂它是怎麼解出來的,雖然有猜到{3}是3位數字,但是不知為什麼要再加上d{3} : 而d{3}和{3}有什麼不一樣呢??另外像^\和$|這些是代表什麼呢??實在不懂啊>"< 你跟初入門看英文文章的人一樣有斷句問題 |D 微&軟的regex 都故意和別人不一樣,但是基本的共通處還是有的 | 表示或(or) 所以你看到的一個regex其實是三個: ^\d{3}-\d{4}$ 或 ^\d{3}=\d{2}$ 或 ^\d{3} ^ 表示字串開頭 $ 表示字串結尾。以上這三個都符合慣例。 \d 正常習慣沒有 \ 一個字當作控制碼的,看到 \d 就要想 \d 整包是 一個控制碼,這裡也是一樣。\d表示[:digit:],也就是[0-9]。 {k} 表示前面的符號重覆 k 次,至於為什麼,因為java也是這樣。 寫到這裡我看這郵遞區號必定不是台灣的郵遞區號,台灣哪來七位數的郵遞區 號?中間也沒有 - 或 = 的。你這顯然是在微&軟的文件裡面找到的範例,那 為什麼不去找找他們關於regex的說明呢? : 所以驗證電話號碼格式如下: : \([0-9]{2,3}\][0-9]{2,4}-[0-9]{4} {j, k} 容許重覆次數,最少 j 次,最多 k 次。 [0-9] 相當於 [0123456789]。上面有提到。同理[A-E]就是ABCDE。 : 上面的格式我不懂的是,(xx)的格式表示方法看來應該是\(代表表示( : 那為什麼-不是用\-來表示?所以不懂什麼時候要用\什麼時候不用\ ( ) 是regex控制字元,可以用來包住整包字元然後後面放{k},因此需要跳脫。 - 不是控制字元所以不要。你以上打錯了,應該是 \) 不是 \]。 : ●驗證EMail地址 : \W+([-+.']\W+)*@\W+([-.]\W+)*\.\W+([-.]\W+)* : 上面的格式我就完全看不懂它在寫什麼了,也不知道怎樣的EMail如果來驗證的話其實是錯的Orz : 請大大幫我解惑一下 \W 任意文字 ([A-Za-z]) + 出現最少一次,最多無限次 [-.] 中括號內的文字符號其中一個 ( ) 括號內整包當作一個單元 * 出現零到無限次,也就是說可以不要 : ●驗證URL : http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)? ? 前面的符號出現0或1次。 所以 http(s)? 就等於 (http|https) 要特別注意一個符號 \w 這和\W不一樣,大W是[A-Za-z],小w比大W更多,應該是包括 [0-9],在其他regex中也稱為[:alnum:] (alphabets and number)。 : 其實打到這邊我就在想,是不是這些格式都是固定的勒=.=? 當然是固定的 -_- 再說一遍,你何不找.NET regular expression的線上資源來看?   -- BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 - http://tinyurl.com/3zpyx5 [B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) - http://tinyurl.com/66v6vq [ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) - http://tinyurl.com/6j4ale ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 蒙帝派松正體中文計畫 Spam-a-lot and enjoy the pythonesque delight! ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ http://www.youtube.com/user/JamesBondXD▄▄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.208.87
hoverwolf:其實對這些並不熟悉,但想要多學學,所以 211.72.242.199 10/23 16:24
hoverwolf:我上面是買書來看的例子=.=" 211.72.242.199 10/23 16:25
hoverwolf:很謝謝大大無私的教導<(_ _)> 211.72.242.199 10/23 16:25
hoverwolf:PS.是\)沒錯,我打錯了 211.72.242.199 10/23 16:32
MOONRAKER:咦?書上沒有對regex各個符號的說明嗎? 59.115.211.53 10/23 16:50
MOONRAKER:http://tinyurl.com/6m5uew 59.115.211.53 10/23 16:52
MOONRAKER:以上那是作者本人分享他以前投稿的regex 59.115.211.53 10/23 16:52
MOONRAKER:文章的網頁,你抓下來看過記得謝謝他 59.115.211.53 10/23 16:53
※ 編輯: MOONRAKER 來自: 59.115.219.47 (10/24 02:13)
MOONRAKER:修改一些沒寫到的地方。 59.115.219.47 10/24 02:14
hoverwolf:MO大真的很謝謝你的詳解 211.72.242.199 10/24 14:30
hoverwolf:因書上是沒有對REGEX有說明,又想搞懂,才 211.72.242.199 10/24 14:31
hoverwolf:上來問問:P 等等回完會好好再去看一下 211.72.242.199 10/24 14:32
hoverwolf:另一位大大的網址XD 211.72.242.199 10/24 14:33
hoverwolf:大大,再請問你一個問題 211.72.242.199 10/24 14:57
hoverwolf:你說[-.]中括號內文字符號其一是因為 211.72.242.199 10/24 14:58
hoverwolf:中括號嗎 211.72.242.199 10/24 14:59
MOONRAKER:是的 類似用法如[ABC] [A-Z]等等 59.115.199.159 10/24 15:05
hoverwolf:那[-+.']裡的' 是代表什麼意思@@? 211.72.242.199 10/24 15:08
hoverwolf:哦哦!! 211.72.242.199 10/24 15:08
MOONRAKER:我想應該沒有特殊意思 我也不很清楚 59.115.203.98 10/24 21:34
MOONRAKER:你可以實驗看看,做內含'的字串來測試 59.115.203.98 10/24 21:34