Golang常用正则验证
2016-01-13 15:27
696 查看
近期整理了一下golang服务端的验证方面的资料, 毕竟总指望前端进行验证是非常不理智和不安全的行为。 长话短说, golang中使用"regexp"包进行相关正则表达式方面的验证,相关API和使用规则在此不做过多赘述。 直接上代码:
package main import ( "fmt" "regexp" ) var reg *regexp.Regexp var pattern string var source string func regexpMatch() { // xy 匹配x y // x|y 匹配x或者y 优先x // source = "asdfdsxxxyyfergsfasfxyfa" // pattern = `x|y|a` //x* 匹配零个或者多个x,优先匹配多个 //x+ 匹配一个或者多个x,优先匹配多个 //x? 匹配零个或者一个x,优先匹配一个 //source = "xxxxewexxxasdfdsxxxyyfergsfasfxyfa" //pattern = `x*` // x{n,m} 匹配n个到m个x,优先匹配m个 // x{n,} 匹配n个到多个x,优先匹配更多 // x{n} 或者x{n}? 只匹配n个x //source = "xxxxxxxewexxxasdfdsxxxyyfergsfasfxyfa" //pattern = `x{4,}` // x{n,m}? 匹配n个到m个x,优先匹配n个 // x{n,}? 匹配n个到多个x,优先匹配n个 // x*? 匹配零个或者多个x,优先匹配0个 // x+? 匹配一个或者多个x,优先匹配1个 // x?? 匹配零个或者一个x,优先匹配0个 //source = "xxxxxxxewexxxasdfdsxxxyyfergsfasfxyfa" //pattern = `x??` //[\d] 或者[^\D] 匹配数字 //[^\d]或者 [\D] 匹配非数字 //source = "xx435ff5237yy6346fergsfasfxyfa" //pattern = `[\d]{3,}` //匹配3个或者更多个数字 //source = "xx435ffGUTEYgjk52RYPHFY37yy6346ferg6987sfasfxyfa" //pattern = `[a-z]{3,}` //三个或者多个小写字母 //source = "xx435ffGUTEYgjk52RYPHFY37yy6346ferg6987sfasfxyfa" //pattern = `[[:alpha:]]{5,}` //5个或者多个字母,相当于A-Za-z //source = "xx435,./$%(*(_&jgshgs发个^$%ffG返回福hjh放假啊啥UTEYgjk52RYPHFY37yy6346ferg6987sfasfxyfa" //pattern = `[\p{Han}]+` //匹配连续的汉字 //source = "13244820821HG74892109977HJA15200806084S11233240697hdgsfhah假发发货" //pattern = `1[3|5|7|8|][\d]{9}` //匹配电话号码 //source = "132@12.comGKGk15@163.cn200806084S11233240697hdgsfhah假发发货" //pattern = `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*` //匹配电子邮箱 //匹配用户名或者密码 `^[a-zA-Z0-9_-]{4,16}$` 字母或者数字开头,区分大小写,最短4位最长16位 //匹配IP地址1 `^$(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$` //匹配IP地址2 //pattern = `((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)` //匹配日期 年-月-日 `(\d{4}|\d{2})-((1[0-2])|(0?[1-9]))-(([12][0-9])|(3[01])|(0?[1-9]))` //匹配日期 月-日-年 `((1[0-2])|(0?[1-9]))/(([12][0-9])|(3[01])|(0?[1-9]))/(\d{4}|\d{2})` //匹配时间 小时:分钟 24小时制 ` ((1|0?)[0-9]|2[0-3]):([0-5][0-9]) ` //匹配邮编 `[1-9][\d]5` //匹配URL `[a-zA-z]+://[^\s]*` reg = regexp.MustCompile(pattern) fmt.Printf("%s", reg.FindAllString(source, -1)) } func main() { regexpMatch() }
原文:http://c2pblog.sinaapp.com/archives/504
相关文章推荐
- django 学习-4 模板标签
- Google Play应用商店的下载路径(转载)
- codeforces 616D Longest k-Good Segment
- Codeforces Educational Codeforces Round 5 D. Longest k-Good Segment 尺取法
- django 学习-3 模板变量
- codeforces 616D Longest k-Good Segment(two pointer)
- 关于Windows 10,你需要注意什么?
- 说一说golang的协程
- mongo ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
- goke7101系统搭建
- 学习mongo系列(十一)关系
- 学习mongo系列(九)索引,聚合,复制(副本集),分片
- 修改hosts让google跑起来
- GO逆转字符串
- Django 中 如何使用 settings.py 中的常量
- Savitzky-Golay smoothing
- Google Chrome 被Hao123.com 首页篡改的 解决办法
- Codeforences Goodbye 2015 C. New Year and Domino
- django 学习-2 模板
- Google图算法引擎Pregel介绍