golang 常用的正则查找与替换
- 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 常用的正则查找与替换的更多相关文章
- visual studio 使用正则查找或替换示例
visual studio 使用正则查找或替换示例 注意哟:使用之前应做好备份 visual studio 2015: 多行替换 (.*)point\ =(.*);\r\n.+this.([A-Za- ...
- JS 正则查找与替换
JS正则查找与替换 一.前提/背景 今天遇到个问题,需要替换字符串中部分字符,这些字符相对整个字符串而言,与其他子字符串类似,无法单独提出:重要的是,该字符串是动态的生成的,就像我们日常看到的网页Ur ...
- frontpage 正则 查找与替换
frontpage正则查找替换 frontpage查找用{}[不是() ]来匹配pattern, 并获取这一匹配 替换时匹配的字符用\1 \2 \3表示 第 N 个标记表达式 \N 在“替换”表达式中 ...
- Vim 常用操作、查找和替换
这篇文章来详细介绍 Vim 中查找相关的设置和使用方法. 包括查找与替换.查找光标所在词.高亮前景/背景色.切换高亮状态.大小写敏感查找等. 查找 在normal模式下按下/即可进入查找模式,输入要查 ...
- Notepad 列编辑、正则查找、替换
目标: 将源数据转成初始化sql语句.源数据: 104110040018,1,中国银行,中国银行天津琼州道支行,NULL,1100,天津市,12,天津市 104110040059,1,中国银行,中国银 ...
- Vim常用匹配、查找、替换命令总结
以前都是从头开始找,最近处理log文件很多. 在vim 中输入 :1?XXXX 1的意思是文件的第一行 ?的意思是反向查找 XXXX就是你要找的关键字 更新:Linux 从末尾开始查找日志 tac c ...
- Sublime_正则查找替换
在sublime编辑器中使用正则表达式对内容进行查找和替换: (1)Find——Replace... (2)出现下图界面 注意:点击左边第一个按钮,开启正则表达式功能. (3) (4)点击Replac ...
- 在VS中用正则表达式查找或替换
2005VS和2008VS正则替换规则如下(2013VS不适合,不需要的同学可以直接跳到2013VS的操作办法): Example: 查找#incldue中带有gl开头的头文件的,用include.+ ...
- JS利用正则配合replace替换指定字符
替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...
随机推荐
- 将IP地址字符串转为32位二进制
def str2bin(s): temp = s.split('.') result = '' for i in range(len(temp)): temp[i] = str(bin(int(tem ...
- 4.Java的流程控制.md
目录 1. break语句 2.continue 3.foreach语句 4.可变参数: 1. break语句 Java的break语句,正常情况下,break和c++一样,但是Java可以设置一个标 ...
- Unity3D初学之2D动画制
作者:Alex Rose Unity最近宣布推出额外的2D游戏支持,添加了Box 2D物理和一个精灵管理器. 但这里还是有些技巧需要牢记在心.逐帧更改图像只是动画制作的冰山一角,若要让你的游戏出色运行 ...
- win8安装iis asp.net
http://www.sanrengo.net/thread-62-1-1.html本文主要解决的是在win8操作系统下IIS配置asp.net的运行环境,当然win7的配置方法也大致相似,只有少许部 ...
- property 、classmethod 、 staticmethod 的用法
@property # property是一个装饰器函数 ,作用:将一个方法伪装成属性 # 所有的装饰器函数都怎么用? 在函数.方法.类的上面一行直接@装饰器的名字 # 装饰器的分类: # 装饰函数 ...
- 3G开发遇到的问题
1.使用线程时,编译时要加上gcc xxx.c -o xxx -lpthread 2.分离字符串"abc,de,fgh" printf("%s",strtok ...
- Java的学习01
记录每天的学习情况.加油. /** * 测试包装类 * @author 小白 * */ public class TestWrappedClass { public static void main( ...
- el-js中循环遍历el的集合
遇到问题的代码: var score=0; for(var i=0;i<${fn:length(tMovie.tComments) };i++){ score=${tMovie.tComment ...
- Spring Boot 邮件配置
######################################################## spring boot mail tls ###################### ...
- React DevTools
[React DevTools] 在应用商店搜索安装.F12可打开.如果是react应用,在最右排会显示react标签. 参考:https://github.com/facebook/react-de ...