正则表达式知识补漏

0、括号的用法:

a、将( 和 ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域。一个正则表达式中最多可以保存9个组。

b、匹配括号需要转义;

1、大括号的用法:

a、大括号前面有要匹配的字符,且大括号里面有数字或逗号+数字或数字 +逗号+数字的组合时,表示量词;

b、除作为量词分界标志的情况外,大括号只是一个普通的匹配字符,把它用作普通匹配字符时,不需要转义。

2、中括号的用法:

a、中括号里面可以放任意个匹配字符,表示一个匹配字符集合,匹配时一次只匹配该集合中的一个字符;

b、中括号里面不带反斜杠的元字符会被视作普通匹配字符,而不需要特别转义,例如 . 将被视为一个点,而不是除制表和空格外的所有字符,但\d将会被视为数字集合;

c、中括号里面的量词将会被视为普通匹配字符,因为中括号里面的量词无意义,例如 [ \d+? ] 里面的+号和?号只是作为普通匹配字符,而不会被视为量词 ;

d、^字符只有放在中括号里才表示取反集合,其他情况下表示以某匹配字符或匹配字符组合开头;

e、匹配中括号需要转义。

3、量词就近修饰原则:

a、量词只修饰最靠近量词左边的匹配字符或者匹配字符集合(以中括号标识)或字符组(以括号标识);

4、贪婪和非贪婪模式:

a、JavaScript中的量词均执行贪婪匹配,量词后面加问号?表示非贪婪匹配;

5、全局匹配:

a、正则表达式后面加g表示全局匹配;

b、正则表达式后面加i表示忽略大小写;

6、正则表达式的或:

a、| 或表示几个中任意一个符合即可;

7、正则预查:

a、正向肯定预查(?=pattern),例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。;

b、正向否定预查(?!pattern),例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。;

c、反向肯定预查(?<=pattern),例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。;

d、非获取匹配(?:pattern),匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分时很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。

时间: 2024-10-27 13:06:58

正则表达式知识补漏的相关文章

JavaScript正则表达式知识汇总

Js 正则表达式知识汇总 正则表达式: 1.什么是RegExp?RegExp是正则表达式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

Javascript正则表达式知识整理

Javascript正则表达式知识整理 1.正则表达式思维导图 2.正则表达式常用示例 2.1 移除所有标签,只留下innerText var html = "<p><a href='http://www.baidu.com/'>Ruby Louvre</a>by <em>test</em></p>"; var text = html.replace(/<(?:.|\s)*?>/g, "&qu

正则表达式知识梳理

首先先贴个网址:https://regexper.com/ 此工具是用来帮助理解正则表达式的,在你阅读正则表达式的时候非常有用. 元字符: 具有特殊含义的非字母字符.包括: * + ?^ $ . | \ ( ) [ ] { } ,如果你能一下子就说出这些符号的含义,表示正则表达式的基础已经掌握了. []:用来匹配一类字符里的一个; [^]:[^表示不包括这类字符.中括号中的^表示取反的意思; [-]:中括号的里-表示范围的意思. .  :匹配所有字符. \d:匹配所有的数字; \D:匹配所有的非

正则表达式知识详解

一.什么是正则表达式? 1.定义: 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等.构造正则表达式的方法和创建数学表达式的方法一样.也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式.正则表达式的组件可以是单个的字符.字符集合.字符范围.字符间的选择或者所有这些组件的任意组合. 2.组成: 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为

Linux运维学习笔记-通配符及正则表达式知识总结

通配符: * 代表所有   ? 任意一个字符   : 两个命令的分隔符   # 注释   | 管道,将|前命令的执行结果作为|后命令的输入   ~ 用户的家目录   - 上一次的目录   $ 变量前面需要加的符号 echo $LANG / 路径分隔符   > 重定向(覆盖)   >> 追加重定向   < 输入重定向 xargs.tr << 追加输入重定向 cat '' 单引号,不具有变量置换功能,输出时所见即所得 echo 'date' "" 具有变

完整的正则表达式知识汇总(Python知识不断更新)

## 大纲: ## 一.正则概述 1.正则是什么 正则就是一套规则,或者语法 2.正则的作用 让我们判断是否符合我们的的规则,或者根据规则找到符合规则的数据 3.使用场景 可以用正则判断我们输入的邮箱是否合法 可以用正则去获取整个网页的照片 4.适合语言 所有语言都可以通用 ## 二.正则表达式简单使用 题目:判断hello是否在helloword中存在 步骤: 1.导入包 2.使用正则匹配![在这里插入图片描述](https://img-blog.csdnimg.cn/201811132001

正则表达式 知识总结

String p = "(?<!:)\\/\\/.*|\\/\\*(\\s|.)*?\\*\\/"; 不匹配 注释行

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例.在 Python 中,我们可以用多种方法来实现单例模式: 1.文件导入的形式(常用) s1.py class Foo(object): def test(self): print("123") v = Foo() #v是Foo的实例 s2.py 复制代码 from s1 import v as v1 print(v1,id(v1)) from s1 import v as v2 print(v1,id(v2)) # 文件加载的时候,第一次导入后

python之(re)正则表达式上

python正则表达式知识预备 正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \\\\ "表示正则表达式中的" \ ",因为正则表达式中如果要匹配" \ ",需要用\来转义,变成" \\ ",而Python语法中又需要对字符串中每一个\进行转义,所以就变成了" \\\\ ". 上面的写法是不是觉得很麻烦,为了使正则表达式