Re: [請益] asp.net的正規表示式

看板Programming作者 (㊣OGC-1701)時間15年前 (2008/10/23 14:41), 編輯推噓3(3018)
留言21則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

10/23 16:24, , 1F
其實對這些並不熟悉,但想要多學學,所以
10/23 16:24, 1F

10/23 16:25, , 2F
我上面是買書來看的例子=.="
10/23 16:25, 2F

10/23 16:25, , 3F
很謝謝大大無私的教導<(_ _)>
10/23 16:25, 3F

10/23 16:32, , 4F
PS.是\)沒錯,我打錯了
10/23 16:32, 4F

10/23 16:50, , 5F
咦?書上沒有對regex各個符號的說明嗎?
10/23 16:50, 5F

10/23 16:52, , 6F

10/23 16:52, , 7F
以上那是作者本人分享他以前投稿的regex
10/23 16:52, 7F

10/23 16:53, , 8F
文章的網頁,你抓下來看過記得謝謝他
10/23 16:53, 8F
※ 編輯: MOONRAKER 來自: 59.115.219.47 (10/24 02:13)

10/24 02:14, , 9F
修改一些沒寫到的地方。
10/24 02:14, 9F

10/24 14:30, , 10F
MO大真的很謝謝你的詳解
10/24 14:30, 10F

10/24 14:31, , 11F
因書上是沒有對REGEX有說明,又想搞懂,才
10/24 14:31, 11F

10/24 14:32, , 12F
上來問問:P 等等回完會好好再去看一下
10/24 14:32, 12F

10/24 14:33, , 13F
另一位大大的網址XD
10/24 14:33, 13F

10/24 14:57, , 14F
大大,再請問你一個問題
10/24 14:57, 14F

10/24 14:58, , 15F
你說[-.]中括號內文字符號其一是因為
10/24 14:58, 15F

10/24 14:59, , 16F
中括號嗎
10/24 14:59, 16F

10/24 15:05, , 17F
是的 類似用法如[ABC] [A-Z]等等
10/24 15:05, 17F

10/24 15:08, , 18F
那[-+.']裡的' 是代表什麼意思@@?
10/24 15:08, 18F

10/24 15:08, , 19F
哦哦!!
10/24 15:08, 19F

10/24 21:34, , 20F
我想應該沒有特殊意思 我也不很清楚
10/24 21:34, 20F

10/24 21:34, , 21F
你可以實驗看看,做內含'的字串來測試
10/24 21:34, 21F
文章代碼(AID): #1901oY-T (Programming)
文章代碼(AID): #1901oY-T (Programming)