1. 正则表达式介绍

正则表达式是程序文本处理常用的模板模式,按照解析正则表达式的引擎可将正则表达式分为 POSIX 基础正则表达式(Basic regular expression,BRE) 引擎和 POSIX 扩展正则表达式(extended regular expression,ERE) 引擎。

2. BRE 引擎

2.1 纯文本匹配和特殊字符

正则表达式中特殊字符转换为文本需要加反斜杠 \。

2.2 锚字符

锚字符可以锁定数据流的行首和行尾。其中,脱字符 ^ 锁定行首,美元符 $ 锁定行尾。

2.3 点号字符

点号字符匹配数据流中的任意单个字符。

2.4 字符组

字符组使用 [ ] 表示,匹配文本模式中某个位置的一组字符。如 [Yy] 匹配数据流中包含 Y 或 y 的任意单个字符。

2.4.1 区间

区间使用 - 表示,如 [a-z] 匹配数据流中包括从 a 到 z 之间任意单个字符。

2.4.2 排除型字符组

排除型字符组在字符前加脱字符用于排除匹配的字符组。如 [^a-z] 匹配不属于 a 到 z 之间的数据流。

2.5 星号

在字符/字符组后加星号,表示该字符可出现 0 次或多次。如 [a-z]*表明数据流中 a 到 z 的字符可出现 0 次到多次。

3. ERE 引擎

3.1 问号

问号类似于星号,表示字符可出现 0 次或 1 次。

4. Go 正则表达式 regexp 包

4.1 MatchString

//MatchString reports whether the string s contains any match of the regular expression pattern. More complicated queries need
//to use Compile and the full Regexp interface. func MatchString(pattern string, s string) (matched bool, err error)

4.2 MustCompile

//MustCompile is like Compile but panics if the expression cannot be parsed. It simplifies safe initialization of global
//variables holding compiled regular expressions. func MustCompile(str string) *Regexp

4.3 FindString

func (re *Regexp) FindString(s string) string

example:

package main

import (
"fmt"
"regexp"
) func main() {
re := regexp.MustCompile(`foo.?`)
fmt.Printf("%q\n", re.FindString("seafood fool"))
fmt.Printf("%q\n", re.FindString("meat"))
}

结合 MustCompile 和 FindString 的示例:

status := regexp.MustCompile(string(ProcessRegexPattern)).FindString(string(status))

小白学正则表达式之 regexp的更多相关文章

  1. 小白学 Python 爬虫(9):爬虫基础

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  2. 小白学 Python 爬虫(22):解析库 Beautiful Soup(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  3. 小白学 Python 爬虫(35):爬虫框架 Scrapy 入门基础(三) Selector 选择器

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  4. 第十四章 web前端开发小白学爬虫

    老猿从事IT开发快三十年了,接触互联网也很久了,但自己没有做过web前端开发,只知道与前端开发相关的一些基本概念,如B/S架构.html标签.js脚本.css样式.xml解析.cookies.http ...

  5. 小白学Docker之Compose

    承接上篇文章:小白学Docker之基础篇,自学网站来源于https://docs.docker.com/get-started 概念 Compose是一个编排和运行多容器Docker应用的工具,主要是 ...

  6. 小白学Docker之Swarm

    承接上篇文章:小白学Docker之Compose,自学网站来源于https://docs.docker.com/get-started 系列文章: 小白学Docker之基础篇 小白学Docker之Co ...

  7. 小白学Docker之基础篇

    系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm PS: 以下是个人作为新手小白学习docker的笔记总结 1. docker是什么 百科上的 ...

  8. 小白学react之网页获取微信用户信息

    通过上一篇<小白学react之EJS模版实战>我们学习了怎样通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划.去 ...

  9. 【JVM从小白学成大佬】3.深入解析强引用、软引用、弱引用、幻象引用

    关于强引用.软引用.弱引用.幻象引用的区别,在很多公司的面试题中经常出现,可能有些小伙伴觉得这个知识点比较冷门,但其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用. 在java语言中, ...

  10. 【JVM从小白学成大佬】6.创建对象及对象的访问定位

    <JVM从小白学成大佬>系列推出到现在,收到了很多小伙伴的好评,也收到了一些小伙伴的建议,在此表示感谢. 有几个小伙伴提出了希望出一篇介绍对象的创建及访问,猿人谷向来是没有原则的,小伙们要 ...

随机推荐

  1. CISC与RISC

  2. 5个免费、跨平台的SQLite数据库可视化工具

    前言 SQLite是一个轻量级的嵌入式关系型数据库,目前最新的版本是 SQLite3.今天推荐5个实用的SQLite数据库可视化工具(GUI),帮助大家更好的管理SQLite数据库. 什么是SQLit ...

  3. 【2016】开机出现 system32\config\system,代码:0xc00000e9解决方法

    这是16年刚工作时写的笔记,也带来这里做个记录吧.实际工作这几年里也时不时会遇到,大多数和非正常关机有关系 今天早上,就在刚才,一个同事的电脑开不了机了,开机提示的是system32\config\s ...

  4. python 实现一个简单的计算器

    python 实现一个简单的计算器 本文主要整合下tkinter ,实现下简单的计算器. 代码如下: #!/usr/bin/python3 # -*- coding: UTF-8 -*- " ...

  5. Java 集合(三)ConcurrentHashMap

    一般来讲,通常使用的 HashMap 不是线程安全的,因为没有任何机制来保证每个操作的原子性.在 ConcurrentHashMap 出现之前,可以通过给 HashMap 的每个操作加上唯一的互斥锁来 ...

  6. 关于three.js中的矩阵更新

    目录 1. 概述 2. 详解 1. 概述 使用如下代码绘制一个面: 'use strict'; function init() { //console.log("Using Three.js ...

  7. 非暴力拆解:小熊派NB-IoT通信扩展板

    摘要:相信大家对小熊派的NB-IoT通信扩展板已经非常了解了,但你有真正的了解过其内部构造吗?今天小编不聊技术,带你做一回拆·机·客! 相信大家对小熊派的NB-IoT通信扩展板已经非常了解了,但你有真 ...

  8. 号外!5G+X联创营华为云官网上线,5G 创业春天来了!

    摘要:为助力互联网行业客户与伙伴实现降本增效.抓住新趋势,华为云发起"5G+X"联创营计划. 会议室里,产品经理和程序员们唇枪舌战,陷入激烈得讨(zheng)论(chao). 产品 ...

  9. 数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器

    摘要:随着数据仓库业务的发展,GDS使用场景日益增多,这就要求GDS仍要不断迭代,充分深入挖掘用户需求,提高产品化程度. 1. GDS定位 GDS是GaussDB(DWS)提供的一个数据导入导出工具, ...

  10. Mysql开发实践:error while loading shared libraries: libaio解决方案

    摘要:Mysql出现问题:error while loading shared libraries: libaio解决方案. 本文分享自华为云社区<Mysql出现问题:error while l ...