您的位置:首页 > 其它

正则表达式相关:收录常用的正则表达式

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

[\u4e00-\u9fa5]

匹配中文包括中文标点符号:

[\u4E00-\u9FA5]|[\uFE30-\uFFA0]

匹配双字节字符(包括汉字在内):

[^\x00-\xff]

匹配回车换行符:

[(\r\n)]

匹配文件路径是否合法:
[^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w]*.*))]

匹配是否为数字:
!(Regex.IsMatch(对象, @"^\d+$")))//表示不是全数字

匹配空行的正则表达式:

\n[\s|]*\r

匹配HTML标记的正则表达式:

/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:

(^\s*)|(\s*$)

匹配Email地址的正则表达式:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
@"^\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}"

匹配网址URL的正则表达式:

http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

匹配电话号码的正则表达式:

@"^(\(\d{3,4}\)|\d{3,4}-?)?\d{7,8}$"

匹配手机号码的正则表达式:

通用的:@"^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}$"

匹配***号码的正则表达式:

通用匹配,@"^(\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)?$"

匹配车牌号的正则表达式:

/^陕[A-M]-[A-Z0-9][0-9]{4}$/

用正则表达式实现javascript中类似trim的功能:

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;}

用正则表达式分解和转换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!")
}
}

2、直接用split函数Ip:

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"
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(/[^\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(/[\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,@"结束", "");

比如,有个字符串:‘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,@"频道", "");

结果:str="博客";



你还可能感兴趣:正则表达式字符描述
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: