正则表达式

我的工作内容以数据监控为主,正则表达式在我的工作中应用比较多。
他对字符串的处理和验证非常高效。现将一些自己积累常用的表达式收集于此,以飨读者。

匹配电话号码:^\d{3}-\d{8}|^\d{4}-\d{7}|1[358]d{9}$
注:匹配形式如 021-87886699 或 0550-5233222 或 13023218757

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
注:中文字符在字符编码里的范围,中国人只认识中文、abc、123,那就用[\u4e00-\u9fa5a-zA-Z0-90-9]吧。

匹配双字节字符:[^\x00-\xff]
注:可以用来计算从第一个双字节字符开始的字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r
注:可以用来删除空白行 C#中 Regex.Replace(objString,@"[\n\s+\r]","");

匹配首尾空白字符的正则表达式:^\s*|\s*$
注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常实用。

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
注:这种方式并非全部,但是一般邮箱格式还是能匹配出来。

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
注:如果非要追求专业,那就用 ^((http|https)://){0,1}([a-zA-Z0-9.]+[/\]*)+([a-zA-Z0-9.]+[?])

匹配腾讯QQ号:[1-9][0-9]{4,}
注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]\d{5}(?!\d)
注:中国邮政编码为6位数字

匹配身份证:\d{15}|\d{18}
注:中国的身份证为15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
注:如果想更准确点,可以用 (\d{1,3}\.){3}\d{1,3}

匹配整数:^-?[1-9]\d*$
匹配正整数:^[1-9]\d*$
匹配负整数:^-[1-9]\d*$
匹配非负整数(正整数 + 0):^[1-9]\d*|0$
匹配非正整数(负整数 + 0):^-[1-9]\d*|0$
匹配正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
匹配负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
匹配浮点数:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
匹配非负浮点数(正浮点数 + 0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
匹配非正浮点数(负浮点数 + 0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
匹配由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
匹配由数字、26个英文字母或者下划线组成的字符串:\w+$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

posted @ 2014-08-15 21:21  牧师/preacher  阅读(189)  评论(0编辑  收藏  举报