package main;

import (
"regexp"
"fmt"
"strings"
) func main() {
//1、过正则来判断字符串是否匹配
if ok, _ := regexp.Match("^[0-9a-zA-Z_]+$", []byte("hello")); ok {
fmt.Println("ok");
} //上面的例子也可以通过MatchString实现
if ok, _ := regexp.MatchString("^[0-9a-zA-Z_]+$", "hello"); ok {
fmt.Println("ok");
} //2、解析正则表达式
//正则表达式如果合法,Compile会返回一个Regexp对象指针,通过该指针可以在任意字符串上进行操作
re, _ := regexp.Compile("[0-9a-zA-Z_]+"); //3、查找正则匹配的字符串
data := "I am a good man"; //Find函数返回匹配的第一个字符串
one := re.Find([]byte(data));
fmt.Println(string(one)); //FindAll函数返回匹配的所有字符串,n小于0返回全部字符串,否则返回指定长度
all := re.FindAll([]byte(data), 2);
//all为长度为2的slice
fmt.Println(string(all[0]));
fmt.Println(string(all[1])); //FindIndex查找匹配的开始位置和结束位置
ix := re.FindIndex([]byte(data));
fmt.Println(ix); //FindAllIndex查找所有匹配的开始位置和结束位置
//n小于0返回全部,否则返回指定长度
all_ix := re.FindAllIndex([]byte(data), -1);
fmt.Println(all_ix);
re2, _ := regexp.Compile("a(.*)g(.*)"); //FindSubmatch查找子匹配项
sub := re2.FindSubmatch([]byte(data));
//第一个匹配的是全部元素
fmt.Println(string(sub[0]));
//第二个匹配的是第一个()里面的
fmt.Println(string(sub[1]));
//第三个匹配的是第二个()里面的
fmt.Println(string(sub[2])); //FindAllSubmatch查找所有子匹配项
all_sub := re2.FindAllSubmatch([]byte(data), 2);
fmt.Println(string(all_sub[0][0]));
fmt.Println(string(all_sub[0][1])); //FindSubmatchIndex用于查找子匹配项的开始位置和结束位置
sub_ix := re2.FindSubmatchIndex([]byte(data));
fmt.Println(sub_ix); //FindAllSubmatchIndex查找所有子匹配项的开始位置和结束位置
//n小于0返回全部,否则返回指定长度
all_sub_ix := re2.FindAllSubmatchIndex([]byte(data), -1);
fmt.Println(all_sub_ix); //4、正则替换
//通过函数进行替换
re3, _ := regexp.Compile("a");
rep := re3.ReplaceAllStringFunc(data, strings.ToUpper);
fmt.Println(rep); //把匹配的所有字符a替换成b
rep2 := re3.ReplaceAllString(data, "b");
fmt.Println(rep2);
}

  

golang 常用的正则查找与替换的更多相关文章

  1. visual studio 使用正则查找或替换示例

    visual studio 使用正则查找或替换示例 注意哟:使用之前应做好备份 visual studio 2015: 多行替换 (.*)point\ =(.*);\r\n.+this.([A-Za- ...

  2. JS 正则查找与替换

    JS正则查找与替换 一.前提/背景 今天遇到个问题,需要替换字符串中部分字符,这些字符相对整个字符串而言,与其他子字符串类似,无法单独提出:重要的是,该字符串是动态的生成的,就像我们日常看到的网页Ur ...

  3. frontpage 正则 查找与替换

    frontpage正则查找替换 frontpage查找用{}[不是() ]来匹配pattern, 并获取这一匹配 替换时匹配的字符用\1 \2 \3表示 第 N 个标记表达式 \N 在“替换”表达式中 ...

  4. Vim 常用操作、查找和替换

    这篇文章来详细介绍 Vim 中查找相关的设置和使用方法. 包括查找与替换.查找光标所在词.高亮前景/背景色.切换高亮状态.大小写敏感查找等. 查找 在normal模式下按下/即可进入查找模式,输入要查 ...

  5. Notepad 列编辑、正则查找、替换

    目标: 将源数据转成初始化sql语句.源数据: 104110040018,1,中国银行,中国银行天津琼州道支行,NULL,1100,天津市,12,天津市 104110040059,1,中国银行,中国银 ...

  6. Vim常用匹配、查找、替换命令总结

    以前都是从头开始找,最近处理log文件很多. 在vim 中输入 :1?XXXX 1的意思是文件的第一行 ?的意思是反向查找 XXXX就是你要找的关键字 更新:Linux 从末尾开始查找日志 tac c ...

  7. Sublime_正则查找替换

    在sublime编辑器中使用正则表达式对内容进行查找和替换: (1)Find——Replace... (2)出现下图界面 注意:点击左边第一个按钮,开启正则表达式功能. (3) (4)点击Replac ...

  8. 在VS中用正则表达式查找或替换

    2005VS和2008VS正则替换规则如下(2013VS不适合,不需要的同学可以直接跳到2013VS的操作办法): Example: 查找#incldue中带有gl开头的头文件的,用include.+ ...

  9. JS利用正则配合replace替换指定字符

    替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...

随机推荐

  1. Redis-stat 的安装与使用

    一.ruby源码安装 下载最新版的 Ruby 压缩文件.请点击这里下载. 下载 Ruby 之后,解压到新创建的目录下: $ tar -xvzf ruby-2.2.3.tgz $ cd ruby-2.2 ...

  2. C++17尝鲜:variant

    variant variant 是 C++17 所提供的变体类型.variant<X, Y, Z> 是可存放 X, Y, Z 这三种类型数据的变体类型. 与C语言中传统的 union 类型 ...

  3. replace()方法解析

    search(),match(),用于查找指定字符串返回首次出现的索引值与指定的字符串.这篇我们讲找到指定字符串之后将其替换掉.直接贴: var str="Visit Microsoft!& ...

  4. Java 分页与原理(上)

    Java web 实习需要用到分页技术 所以现在学习一下 做个记录 方便以后查阅 分类:传统分页技术 下拉式分页技术 起始位置(0)开始 查询(10条记录)

  5. Ajax 学习 第四篇

    使用jQuery实现Ajax 跨域

  6. Nginx深度优化

    简介 1.隐藏版本号2.修改Nginx用户与组3.配置Nginx网页缓存时间4.实现Nginx的日志切割5.配置Nginx实现连接超时6.更改进程数7.配置Nginx实现网页压缩功能8.配置Nginx ...

  7. Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...

  8. Object.keys(obj)--获取对象属性,该方法返回一个数组

    find: function(id){ var self = this; var _id = parseInt(id, 10), id = ''; Object.keys(self.data).for ...

  9. js身份证掩饰成**(class循环处理)

    $('.shijian').each(function (i){ value=$(this).attr('data');value1=value.replace(/^(.{3})(?:\d+)(.{4 ...

  10. pip安装插件库

    升级:python -m pip install --upgrade pip 读excel:pip install xlrd 写入excel:pip install xlwt