当前位置:编程学习 > C#/ASP.NET >>

收录常用的正则表达式

正则表达式在项目中用时常还是会用到的,不过写起来还是要费些工夫的,于是搜集了一些常用的正则,就不用每次都要自己写了。君子善假于物也,借助现有的经验资料以提高编程的效率。
 匹配中文字符的正则表达式:


[\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,''))"
 

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,