golang 正则 regexp包使用

Python014

golang 正则 regexp包使用,第1张

先介绍几种常用的方法:

1、使用MatchString函数或Match函数

regexp.MatchString(pattern string, s string) pattern为正则表达式,s为需要校验的字符串

regexp.Match(pattern string, b []byte) pattern为正则表达式,s为需要校验的字符串

它们的作用都是匹配,区别在于参数为字符串和切片

实例如下:

2、使用 Compile函数或MustCompile函数

它们的区别是Compile返回两个参数 Regexp,error类型,而MustCompile只返回 Regexp类型

它们的作用是将正则表达式进行编译,返回优化的 Regexp 结构体,该结构体有需多方法。

实例如下:

3、查找正则匹配字串( 注:函数名包含string的所传参数为string 其他的均为[]byte 带All是所有)

查找正则匹配的字符串位置( 注:函数名包含string的所传参数为string 其他的均为[]byte 带All是所有)

4、替换

正则替换

按原文替换

函数处理替换源字串

5、Regexp结构体中一些常用的方法

$reg="/src[=\"\'\s]+([^\"\']+)[\"\']/i"

$str=""

if(preg_match_all($reg,$str,$m)){

for($i=0$i<count ( $m [1] )$i++){

echo $m[1][$i]

}

}

src表示以src开头,

[^>]*表示不含有‘>’字符的子串

[^/].表示任意一个非'/'字符后面跟一个任意字符(个人觉得这里写的不对,‘.'前要加\转义才表示’.')

(?:jpg|bmp|gif)表示后面要跟上jpg或bmp或gif,?:表示“非获取匹配”(这里非必须)

(?:\"|\')表示后面跟双引号或单引号,\符号是转义字符。

合起来的意思就是:选取以src开头,到jpg或bmp或gif并后跟引号结尾,中间不能有'>'字符的字符串。

参考:http://zh.wikipedia.org/zh-cn/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F