regex的环视和方括号用法基础讲解

先介绍下基本的概念,可能看起来这些概念性的东西不是太懂,但是这个还是要记一下的,为以后复杂的regex打下基础.
(?<=EXP)
逆序肯定环视,表示所在位置左侧能够匹配EXP
(?<!EXP)
逆序否定环视,表示所在位置左侧不能够匹配EXP
(?=EXP)
顺序肯定环视,表示所在位置右侧能够匹配EXP
(?!EXP)
顺序肯定环视,表示所在位置右侧不能够匹配EXP
实例:String: a1b2c3d
l         要匹配字母后面是数字2的字母
Regex:[a-z](?=2)
结果:b
l         要匹配字母前面是数字2的字母
Regex: (?<=2)[a-z]
结果:c
l         要匹配后面不是数字2的字母
Regex: [a-z](?!2)
结果:a c d
l         要匹配前面不是数字2的字母
Regex: (?<!2)[a-z]
结果:a b d
最后说下[]这个问题
[]支持用连字符”-”连接两个字符,来表示一个字符的范围,例如[a-z]表示所有的大小英文字母[0-9]表示0到9所有的数字
因为[]本身表示的就是字符之间的“或”的关系,因此在[]中使用”|”来表示“或”的关系是错误。
如果使用字符串间的或关系,那么就需要用到”()”了
因此在括号的使用上引入了非捕获组与捕获组的概念
关于记忆:
带有<符号的都是判断左侧的,<箭头不是向左嘛。
不带<箭头的都是判断右边的,正则匹配的顺序都是从左至右。

时间: 2024-10-11 21:10:31

regex的环视和方括号用法基础讲解的相关文章

JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承

说好的讲解JavaScript继承,可是迟迟到现在讲解.废话不多说,直接进入正题. 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考<面向对象JS基础讲解,工厂模式.构造函数模式.原型模式.混合模式.动态原型模式>,接下来讲一般通过那些方法完成JavaScript的继承. 原型链 JavaScript中实现继承最简单的方式就是使用原型链,将子类型的原型指向父类型的实例即可,即“子类型.prototype = new 父类型();”,实现方法如下

面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式

什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下来将为大家讲解在JS中面向对象的实现. 工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,而由于在ECMAScript中无法创建类,因此用函数封装以特定接口创建对象.其实现方法非常简单,也就是在函数内创建一个对象,给对象赋予属性及方法再将对象返回即可. function createBlog(

一,细说 HTML5 之 HTML5 基础讲解

这是一个HTML5系列,主要是零基础的宝宝们快速认识与学习HTML5. 了解 HTML 1.什么是 HTML HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (markup language) 注:标记语言是一套标记标签 (markup tag),HTML 使用标记标签来描述网页 2. HTML版本 版本 年份 HTML 1991 HTML + 1993 HTML 2.0

原生AJAX基础讲解及兼容处理

原文:原生AJAX基础讲解及兼容处理 AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML). AJAX不是新技术 ,但却是热门的技术.它可以在不重载(刷新)整个页面的情况下与服务器进行数据交互并更新网页模块. AJAX的优点有很多:可以局部刷新.按需加载,这样就减轻了服务器的数据流量.并且在页面更新的同时,用户可以浏览器网页的其它内容而不受影响,也减轻了结构负担.AJAX也不是万能的,在有以上优点的同时SEO也受到了影响. 在学习A

弹性布局的基础讲解

弹性布局的基础讲解 弹性布局是由w3c在2009年提出的一种布局方法,目前浏览器都已经支持弹性布局(忽略IE6吧).本文主要讲解弹性布局的基本语法并将其应用到实际网页布局中 如何应用弹性布局,代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content=&qu

requests用法基础-进阶

本节内容 模块的安装 -----------------------基础用法--------------------- GET用法.POST用法 -----------------------进阶用法-------------------- cookie处理.代理ip.session 一 模块安装: 1). 安装requests包还是很方便的,电脑中有python环境,打开cmd,输入pip install requests下载: 如果有同学使用pycharm的话,选择file-->settin

二,细说 HTML5 之 HTML5 基础讲解 2

这是一个HTML5系列,主要是零基础的宝宝们快速认识与学习HTML5. HTML5 样式.链接和表格 1.HTML5 样式 标签 描述 <style> 定义样式定义 <link> 定义资源引用 <div> 定义文档中的节或区域(块级) <span> 定义文档中的行内的小块或区域 属性: 属性 描述 rel="stylesheet" 外部样式表 type="text/css" 引入文档的类型 margin 边距 三种样式

Java设计模式之初学者笔记——设计模式基础讲解

前言 最近了解了一下设计模式,起初看的是<大话设计模式>,这本书是用C#语言写的,觉着挺有意思,其实很多模式我们都已经在用了,却不知道这就是设计模式.所以后来买了本GOF的<设计模式--可复用面向对象软件的基础>打算好好钻研下.这本书是设计模式的鼻祖,相当权威,书名中说的是"可复用面向对象软件的基础",这是基础,我对此表示比较震撼.用了三年的面向对象语言居然不了解设计模式,不知道这是基础,看来也是白活了.我暂时了解到的在此基础上还有重构等等很多比较高级概念.但这

AWK基础讲解笔记

目录 awk课程总结... 1 第1章 awk基础入门... 1 1.1 awk基础入门... 1 1.2 awk简介... 1 1.2.1 一种名字怪异的语言... 1 1.2.2 模式扫描和处理... 1 1.3 学过awk可以掌握的内容... 1 1.4 awk命令... 1 1.5模式及pattern,可以类似理解成sed的模式匹配,可以由表达式组成,也可以是俩个正斜杠之间的正则表达式,比如:NR==1 ,这就是模式,可以理解为一个条件.... 2 1.6动作即action,是由在大括号