程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 收錄常用的正則表達式

收錄常用的正則表達式

編輯:C#入門知識

正則表達式在項目中用時常還是會用到的,不過寫起來還是要費些工夫的,於是搜集了一些常用的正則,就不用每次都要自己寫了。君子善假於物也,借助現有的經驗資料以提高編程的效率。
 匹配中文字符的正則表達式:


[\u4e00-\u9fa5] 
 [\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):


[^\x00-\xff] 
[^\x00-\xff]
匹配回車換行符:


[(\r\n)] 
[(\r\n)]
匹配文件路徑是否合法:


[^(([a-zA-Z]:)|(\\{2}\w+)\$?)(<a href="file://\\(\w[\w">\\(\w[\w</a>]*.*))] 
[^(([a-zA-Z]:)|(\\{2}\w+)\$?)(<a href="file://\\(\w[\w">\\(\w[\w</a>]*.*))]
匹配是否為數字:


!(Regex.IsMatch(對象, @"^\d+$")))//表示不是全數字 
!(Regex.IsMatch(對象, @"^\d+$")))//表示不是全數字
匹配空行的正則表達式:


\n[\s|]*\r 
\n[\s|]*\r
匹配HTML標記的正則表達式:


/<(.*)>.*<\/\1>|<(.*) \/>/  
/<(.*)>.*<\/\1>|<(.*) \/>/ 
匹配首尾空格的正則表達式:


(^\s*)|(\s*$) 
(^\s*)|(\s*$)
匹配Email地址的正則表達式:


\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
@"^\s*([A-Za-z0-9_-]+(\.\w+)*@(\w+\.)+\w{2,3})\s*$" 
@"^\s*([A-Za-z0-9_-]+(\.\w+)*@(\w+\.)+\w{2,3})\s*$"
@"^\w+((-\w+)|(\.\w+))*\@{1}\w+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}" 
@"^\w+((-\w+)|(\.\w+))*\@{1}\w+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}"
匹配網址URL的正則表達式:


http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 
http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
匹配電話號碼的正則表達式:


@"^(\(\d{3,4}\)|\d{3,4}-?)?\d{7,8}$" 
@"^(\(\d{3,4}\)|\d{3,4}-?)?\d{7,8}$"
匹配手機號碼的正則表達式:


通用的:@"^1[0-9]{10}$" 
通用的:@"^1[0-9]{10}$"
/*描述不同公司手機號碼規則的正則表達式 
 
* *cmcc-中國移動手機號碼規則 
 
* *cucc-中國聯通手機號碼規則 
 
* *cnc--中國網通3G手機號碼規則*/ 
 
            String cmcc = "^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$" 
            String cucc = "^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$" 
            String cnc = "^[1]{1}[8]{1}[89]{1}[0-9]{8}$" 
/*描述不同公司手機號碼規則的正則表達式

* *cmcc-中國移動手機號碼規則

* *cucc-中國聯通手機號碼規則

* *cnc--中國網通3G手機號碼規則*/

            String cmcc = "^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$"
            String cucc = "^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$"
            String cnc = "^[1]{1}[8]{1}[89]{1}[0-9]{8}$"
匹配身份證號碼的正則表達式:


通用匹配,@"^(\d{14}|\d{17})(\d|[xX])$" 
通用匹配,@"^(\d{14}|\d{17})(\d|[xX])$"
一個精確匹配的例子,不過只能匹配1900-2000之間的, 
@"^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}((19\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d{2}(0[13578]|1[02])31)|(19\d{2}02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x)?$" 
一個精確匹配的例子,不過只能匹配1900-2000之間的,
@"^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}((19\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d{2}(0[13578]|1[02])31)|(19\d{2}02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x)?$"
匹配車牌號的正則表達式:


/^陝[A-M]-[A-Z0-9][0-9]{4}$/ 
/^陝[A-M]-[A-Z0-9][0-9]{4}$/
用正則表達式實現javascript中類似trim的功能:



String.prototype.trim = function() 

return this.replace(/(^\s*)|(\s*$)/g, ""); 

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
 
用正則表達式計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1):


String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} 
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
用正則表達式分解和轉換IP地址:
1、用正則表達式匹配IP地址,並將IP地址轉換成對應數值的Javascript函數:


function IP2V(ip) 

re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正則表達式 
if(re.test(ip)) 

return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 

else 

throw new Error("Not a valid IP address!") 


function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正則表達式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
2、直接用split函數Ip:


var ip="10.100.20.168" 
ipip=ip.split(".") 
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1)) 
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
用正則表達式從URL地址中提取文件名的javascript程序,如下結果為page1


s="http://www.9499.net/page1.htm" 
ss=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") 
alert(s) 
s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
用正則表達式限制網頁表單裡的文本框輸入內容。

用正則表達式限制只能輸入中文:


onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"  
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" 
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
 
 用正則表達式限制只能輸入全角字符:


onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"  
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" 
onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正則表達式限制只能輸入數字:


onkeyup="value=value.replace(/[^\d]/g,'') " 
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 
onkeyup="value=value.replace(/[^\d]/g,'') "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
 
用正則表達式限制只能輸入數字和英文:


onkeyup="value=value.replace(/[\W]/g,'') " 
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 
onkeyup="value=value.replace(/[\W]/g,'') "
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正則表達式截取指定字符之間的內容:


Regex regx = new Regex(@"開始 ([\w\W]*?)結束"); 
Match mach = regx.Match( @"要截取的字符串"); 
string str = mach.Value; 
str = Regex.Replace(str,@"開始 ", ""); 
str = Regex.Replace(str,@"結束", ""); 
Regex regx = new Regex(@"開始 ([\w\W]*?)結束");
Match mach = regx.Match( @"要截取的字符串");
string str = mach.Value;
str = Regex.Replace(str,@"開始 ", "");
str = Regex.Replace(str,@"結束", "");
比如,有個字符串:‘CSDN博客頻道’,想把把‘博客’兩個字取出來如下:


Regex regx = new Regex(@"CSDN ([\w\W]*?)頻道");   
Match mach = regx.Match(@"CSDN博客頻道");   
string str = mach.Value;   
str = Regex.Replace(str,@"CSDN ", "");  
str = Regex.Replace(str,@"頻道", "");   
Regex regx = new Regex(@"CSDN ([\w\W]*?)頻道"); 
Match mach = regx.Match(@"CSDN博客頻道"); 
string str = mach.Value; 
str = Regex.Replace(str,@"CSDN ", "");
str = Regex.Replace(str,@"頻道", "");  
結果:str="博客";

 摘自 白楊樹

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved