asp.net中匹配URL網址的正規表示式
%<本人做的是asp.net的專案,內容是阻止一個文字框中的某些URL>%
首先,正規表示式:
String check = @"((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\&%_\./-~-]*)?";
關於該正規表示式的說明:
①:該正規表示式匹配的字串必須以http://、https://、ftp://開頭;
②:該正規表示式能匹配URL或者IP地址;(如: 或者 http://192.168.1.1)
③:該正規表示式能匹配到URL的末尾,即能匹配到子URL;(如能匹配:/s?wd=a&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&inputT=1236)
④:該正規表示式能夠匹配埠號;
阻止某些指定的URL:
如果我們在輸入的文字框中要阻止這個URL,傳統的方法是用上面的正規表示式去匹配文字框中的URL,讀出所有的URL之後在跟要阻止的URL去比較,但是這種方法有一個弊端,就是我們讀出的URL是一直到子URL,而我們在配置檔案中可能就寫一個母URL,這樣要對check出來的URL進行切割,加上網站預設的埠號是:80,我們要去比較埠號等等,我想出了一種新的方法:
從配置檔案中讀出要阻止的URL,組成一個正規表示式,去匹配文字框中,如果能夠匹配到,則阻止掉。
配置檔案中應該寫:<add key="DomainCheckBlackUrl" value="baidu.com" />
在程式碼中實現:
現在一個正規表示式由3部分組成:
1:正規表示式的開頭,可能由任意的字元組成;
2:正規表示式的中間部分:從配置檔案中讀出來的部分;
3:正規表示式的結尾部分:可能有一些子目錄或者埠號等;
首先,從配置檔案中讀出URL:string[] serverlist = ConfigurationManager.AppSettings["DomainCheckBlackUrl"].Split(',');(配置檔案中以“,”分割)
其次,string start = @"((http|ftp|https)://)([a-zA-Z0-9_-]+\.)*";(正規表示式的開頭)
然後,正規表示式的結尾: end = @"(:[0-9]{1,4})?((/[a-zA-Z0-9\&%_\./-~-]*)|(?=[^a-zA-Z0-9\.]))";
組合之後的正規表示式: string check = start + @"((?<=[^a-zA-Z0-9])(" + CutStr + "))" + end;
以上是本人的一些小見解,希望對大家能有所幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015107/viewspace-2874051/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js匹配網址url的正規表示式集合JS
- 匹配URL的正規表示式(推薦)
- 匹配可以帶有引數網址正規表示式
- URL正規表示式
- 正規表示式匹配
- 正規表示式的多行匹配
- 匹配網易郵箱正規表示式
- 匹配子網掩碼正規表示式
- 正規表示式匹配原理
- 字串——正規表示式匹配字串
- python 正規表示式匹配Python
- 正規表示式 多行匹配
- 匹配字母正規表示式
- leetcode - 正規表示式匹配LeetCode
- 正規表示式匹配html中的圖片HTML
- 匹配正整數正規表示式
- Python正規表示式匹配字串中的數字Python字串
- PostgreSQL中的模式匹配和正規表示式 - DasSQL模式
- 正規表示式支配匹配模式模式
- JavaScript匹配中文正規表示式JavaScript
- 匹配護照正規表示式
- 匹配小數正規表示式
- 匹配負數正規表示式
- 匹配整數正規表示式
- 匹配自然數正規表示式
- 匹配航班號正規表示式
- 正規表示式匹配漢字
- 10. 正規表示式匹配
- 正規表示式匹配問題
- npp++常用的匹配正規表示式
- 匹配磁力連結的正規表示式
- 匹配A股程式碼的正規表示式
- 匹配HTML註釋的正規表示式HTML
- 正規表示式同時匹配中英文及常用正規表示式
- 轉|正規表示式之匹配中文
- 匹配浮點數正規表示式
- 匹配二級域名正規表示式
- 匹配車牌號正規表示式