正则表达

djosimon djosimon     2023-02-12     115

关键词:

1、正则表达式-简介

正则表达式的使用,可以通过简单的办法来实现强大的功能。下面先给出一个简单的示例:

技术分享图片

  • ^ 为匹配输入字符串的开始位置。

  • [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。

  • abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。

我们在写用户注册表单时,只允许用户名包含字符、数字、下划线和连接字符(-),并设置用户名的长度,我们就可以使用以下正则表达式来设定。

技术分享图片

以上的正则表达式可以匹配 runoob、runoob1、run-oob、run_oob, 但不匹配 ru,因为它包含了小写的字母而且太短了,也不匹配 runoob$, 因为它包含特殊字符。


 

2、正则表达式-语法

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

例如:

  • runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。

  • runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。

  • colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

普通字符

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

非打印字符

非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:

技术分享图片

特殊字符

所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo*b 中的 *,简单的说就是表示任何字符串的意思。如果要查找字符串中的 *符号,则需要对 * 进行转义,即在其前加一个 runo*ob 匹配 runo*ob。

许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符 放在它们前面。下表列出了正则表达式中的特殊字符:

技术分享图片

限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 n 或 n, 或 n,m 共6种。

正则表达式的限定符有:

技术分享图片

定位符

定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束, 描述单词的前或后边界,B 表示非单词边界。

正则表达式的定位符有:

技术分享图片


 

3、正则表达式-元字符

 下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:

技术分享图片

等等。


 

4、正则表达式-运算符优先级

正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。

相同优先级的从左到右进行运算,不同优先级的运算先高后低。下表从最高到最低说明了各种正则表达式运算符的优先级顺序:

技术分享图片


 

5、正则表达式-示例

技术分享图片

 

正则表达式

正则表达式知识要点select工具基本语法通配符的使用搜索文本grep的使用基本的正则表达式正则表达式介绍通配符通用修饰符扩展正则表达式正则表达式分组转义元字符正则表达式和统配符正则表达式和统配符的区别实验案例实... 查看详情

检查正则表达式是不是通过正则表达式有效

】检查正则表达式是不是通过正则表达式有效【英文标题】:Checkisregexisvalidviaregex检查正则表达式是否通过正则表达式有效【发布时间】:2013-04-2917:50:30【问题描述】:出于好奇,是否可以编写一个正则表达式,用于检查其他正... 查看详情

正则表达式(代码片段)

目录今日内容学习目标正则表达式1.1正则表达式的概念及演示1.2正则表达式-字符类1.3正则表达式-逻辑运算符1.4正则表达式-预定义字符1.5正则表达式-数量词1.6正则表达式练习11.7正则表达式练习21.8本地数据爬取1.9网络数据爬取(... 查看详情

正则表达式(代码片段)

regularexpression1、正则表达式概述常用的正则表达式引擎POSIX基本正则表达式BRE引擎POSIX扩展正则表达式BRE引擎正则表达式:是一类字符所书写出的模式(pattern)元字符:不表示字符本身的意义,用于额外功能性描述基本正则表达... 查看详情

java正则表达式

正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 HelloWorl... 查看详情

java正则表达式

正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 HelloWorl... 查看详情

正则表达式在js中的用法(代码片段)

正则表达式1.正则表达式概述1.1什么是正则表达式1.2正则表达式的特点2.正则表达式在js中的使用2.1正则表达式的创建2.2测试正则表达式3.正则表达式中的特殊字符3.1正则表达式的组成3.2边界符3.3字符类3.3.1[]方括号3.3.2量词符3.4预... 查看详情

vim 正则表达式和普通正则表达式有啥区别?

】vim正则表达式和普通正则表达式有啥区别?【英文标题】:What\'sthedifferencebetweenvimregexandnormalregex?vim正则表达式和普通正则表达式有什么区别?【发布时间】:2010-10-0514:12:04【问题描述】:我注意到vim的替代正则表达式与其他... 查看详情

js正则表达式

【正则表达式】 1、正则表达式包括两部分: ①定义正则表达式的规则;②正则表达式的模式(i/g/m); 2、声明正则表达式: ①字面量声明:varreg=/表达式规则/表达式模式; eg:varreg=/white/g; ②使用new关键字:varreg=ne... 查看详情

[基础]正则表达式

...一窜字符,醉了。一个不错的教程。   首页|正则表达式30分钟入门教程|常用正则表达式|正则表达式速查表|正则表达式测试工具|正则表达式|JavaScript正则在线测试工具(带高亮)|JavaScript正则在线测试工具|正则练习器在... 查看详情

正则表达式(代码片段)

1#tool.chinaz.com/regex/这是一个在线的正则表达式测试工具2#re模块,在python中想要使用正则表达式,要使用re模块来进行使用3#正则表达式45#学习正则表达式67#学习使用re模块来操作正则表达式8910#正则表达式是用来做字符串匹配的11#... 查看详情

javascript学习-正则表达式

【正则表达式】 1、正则表达式宝库奥两部分:①定义的正则表达式规则②正则表达式的模式(g/i/m) 2、正则表达式的声明;①字面声明:varreg=/表达式规则/表达式模式/white/g②new关键字:varreg=newRegExp("表达式规则","表达... 查看详情

将 js 正则表达式转换为 python 正则表达式

】将js正则表达式转换为python正则表达式【英文标题】:convertjsregexintopythonregex【发布时间】:2014-11-0809:12:58【问题描述】:我正在处理一个项目的一部分,如果可能的话,它将用httpsurl替换httpurl。问题是,它的正则表达式是为ja... 查看详情

re正则表达式方法(代码片段)

目录1、python正则匹配1.1re.search正则表达式1.2re.match()正则表达式1.3re.match与re.search的区别1.4检索和替换1.5正则表达式对象1.6正则表达式修饰符-可选标志1.7正则表达式模式1.8正则表达式实例1.9正则表达式re.findall用法来源1、python正... 查看详情

正则表达式

第1章 正则表达式1.1 正则表达式的概念正则表达式(英语:RegularExpression,在代码中常简写为regex)。正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开... 查看详情

java正则表达式

Java正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,... 查看详情

linux正则表达式

正则表达式与通配符的区别:最常应用正则表达式的命令是grep(egrep),sed,awk。正则表达式和通配符有本质区别,正则表达式用来找:【文件】内容,文本,字符串。一般只有三剑客支持。通配符用来找:文件名。普通命令都... 查看详情

正则表达式

#正则表达式基础知识######  使用正则表达式时,能用简单表达式,就不要用复杂的表达式。因为越复杂的正则表达式效率反而不高且易读性极差。####一.概述###  正则表达式,Regular#Expression,缩写为regex、regexp、RE等。正则... 查看详情