当前位置: 首页 > 后端技术 > Python

python常用验证方法总结

时间:2023-03-26 12:41:47 Python

1.验证字符串是否为合法IP地址ipv4示例:使用正则表达式匹配defcheckip(ip):p=re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')如果p.match(ip):返回True否则:返回False2。检查字符串是否为中文。Python在代码执行过程中并不知道这个字符是什么意思,也不知道是不是中文。相反,所有的代码都被翻译成二进制,即000111的形式,一种机器可以理解的语言。也就是说,计算机中的所有字符都是用数字来表示的。汉字也是用数字表示的。unicdoe4E00\~9FFF代表中文,所以如果一个字符的utf-8编码在这个范围内,就代表是中文。代码:defis_Chinese(word):forchinword:if'\u4e00'<=ch<='\u9fa5':returnTruereturnFalse3.判断一个unicode是否为数字defis_number(uchar):ifuchar>=u'/u0030'anduchar<=u'/u0039':returnTrueelse:returnFalse4.判断一个unicode是否为英文字母defis_alphabet(uchar):if(uchar>=u'/u0041'anduchar<=u'/u005a')or(uchar>=u'/u0061'anduchar<=u'/u007a'):返回True否则:返回False5。主要非英文字符范围2E80~33FFh:中日韩文符号区。收录康熙字典部首、中日韩副部首、注音符号、日文假名、韩文注解、中日韩文符号、标点符号、带圈或封闭的符文数字、月份和日文假名组合、单位和年数,月、日、时等。3400~4DFFh:中日韩协议表意扩充A区,共容纳6582个中日韩汉字。4E00~9FFFh:CJK表意区,共可容纳20902个CJK汉字。A000~A4FFh:彝文区,包含中国南方的彝文和部首。AC00~D7FFh:韩文拼音组合字符区,存放韩文注音符号拼写的字符。F900~FAFFh:中日韩兼容表意字符区,共可容纳302个中日韩汉字。FB00~FFFDh:文字表达形式区,包含组合拉丁文、希伯来文、阿拉伯文、中文、日文、韩文直标点、小符号、半角符号、全角符号等。比如你需要匹配所有的中文、日文、韩文非符号字符,那么正则表达式应该是^[/u3400-/u9FFF]+$理论上是正确的,但是我从msn.co.ko,发现一点都不对,奇怪然后我从msn.co.jp上复制了一个'お',但是没有用。然后我把范围扩大到^[/u2E80-/u9FFF]+$,这样就通过了,这个应该可以匹配中日韩文字的正则表达式,包括我们台湾现在还在盲目使用的繁体中文,而关于中文的正则表达式,应该是^[/u4E00-/u9FFF]+$,和论坛里经常提到的^[/u4E00-/u9FA5]+$很接近。需要注意的是,论坛中提到的^[/u4E00-/u9FA5]+$是专门用来匹配简体中文的正则表达式。其实繁体字也包括在内。我用测试仪测试了‘中华人民共和国’,通过了。当然,^[/u4E00-/u9FFF]+$也是同样的结果。6、常用验证正则表达式匹配双字节字符(包括汉字):[^x00-xff]注释:可以用来计算字符串的长度(一个双字节字符算2,一个ASCIIcharactercountsas1)匹配空行的正则表达式:ns*r注释:可以用来删除空行匹配HTML标签的正则表达式:<(S*?)[^>]*>.*?|<.*?/>点评:网上流传的版本太烂了,上面的只能匹配一部分。对于复杂的嵌套标签,还是没法匹配首尾空白字符的正则表达式:^s*|s*$点评:可以用来删除首尾空白字符该行(包括空格、制表符、表单提要等),一个非常有用的表达式,用于匹配电子邮件地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*注解:表单验证时匹配URL正则表达式非常实用:[a-zA-z]+://1*注解:网上流传的版本的功能网络很有限,上面一个基本可以满足需求,匹配账号是否合法(以字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$点评:表单验证匹配国内电话号码很实用:d{3}-d{8}|d{4}-d{7}点评:匹配表单这样如0511-4405222或021-87888822匹配腾讯QQ号:[1-9][0-9]{4,}评论:TencentQQ号匹配10000开头的中文邮编:[1-9]d{5}(?!d)comment注:中国邮政编码为6位匹配身份证:d{15}|d{18}备注:中国身份证为15或18位匹配ip地址:d+.d+.d+.d+备注:提取ip地址有时是用于匹配特定数字:^[1-9]d*$  //匹配正整数^-[1-9]d*$ //匹配负整数^-?[1-9]d*$  //匹配整数^[1-9]d*|0$ //匹配非负整数(正整数+0)^-[1-9]d*|0$  //匹配非正整数(负整数+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)$ //匹配浮点数^[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)注释:处理大量数据时很有用,注意关于具体应用中具体字符串的纠正:^[A-Za-z]+$  //匹配26个英文字母组成的字符串^[A-Z]+$  //匹配26个大写字母组成的字符串英文字母^[a-z]+$  //匹配26个小写英文字母组成的字符串^[A-Za-z0-9]+$  //匹配数字和26个英文字母组成的字符串^w+$  //匹配由数字、26个英文字母或下划线组成的字符串。使用RegularExpressionValidator验证控件时的验证函数及其验证表达式介绍如下:只能输入数字:“^[0-9]*$”只能输入n位:“^d{n}$”只能至少输入n位:"^d{n,}$"只能输入m-n位:"^d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$”只能输入小数点后两位的正实数:“^[0-9]+(.[0-9]{2})?$”只能输入正实数1-3位小数:“^[0-9]+(.[0-9]{1,3})?$”只能输入非零正整数:“^+?[1-9][0-9]*$"只能输入非零负整数:"^-[1-9][0-9]*$"只能输入长度为3的字符:"^.{3}$”只能输入26个英文字母组成的字符串:“^[A-Za-z]+$”只能输入26个大写英文字母组成的字符串:“^[A-Z]+$”只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"只能输入由数字、26个英文字母或下划线组成的字符串:“^w+$”验证用户密码:“^[a-zA-Z]w{5,17}$”格式是否正确它是:开头一个字母,长度在6-18之间,只能包含字符、数字和下划线验证是否包含字符如^%&',;=?$":"[^%&',;=?$x22]+"只能输入汉字:"^[u4e00-u9fa5],{0,}$"验证邮箱地址:"^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"验证InternetURL:"^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$"验证电话号码:"^((d{3,4})|d{3,4}-)?d{7,8}$"正确格式为:"XXXX-XXXXXXX","XXXX-XXXXXXXX","XXX-XXXXXXX","XXX-XXXXXXXX","XXXXXXX","XXXXXXXX"。验证身份证号(15位或18位):“^d{15}|d{}18$”验证一年中的12个月:“^(0?[1-9]|1[0-2])$"正确的格式是:"01"-"09"和"1""12"验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确的格式是:"01""09"和"1""31"。正则表达式匹配汉字:[u4e00-u9fa5]匹配双字节字符(含汉字):[^x00-xff]正则表达式匹配空行:n[s|]*r匹配HTML标签正则表达式:/<(.*)>.*|<(.*)/>/正则表达式匹配首尾空格:(^s*)|(s*$)正则表达式匹配电子邮件地址:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*匹配URL的正则表达式:http://([w-]+.)+[w-]+(/[w-./?%&=]*)?s?