正则是什么意思(正则表达式)

写在开篇

不知道你们有没有过这样的经历:我们去某些网站注册帐号,当你在设置密码的时候,网站会提示你密码的长度范围,以及对应的规则限制,现在假设我们不知道正则表达式,作为程序员,该如何去实现这样一个密码验证呢?关于正则表达式一直都是个让很多我们都觉得很郁闷的一个东西,觉得创造正则表达式的那个家伙简直就是个奇葩,

了解什么是正则表达式?

正则表达式是?组由字?和符号组成的特殊?本,它可以?来从?本中找出满?你想要的格式的句?

正则表达式可以从?个基础字符串中根据?定的匹配模式替换?本中的字符串、提取字符串等。

正则表达式的分类

  • 在 Linux 和 OS X 下,常见的正则表达式,至少有以下三种:

基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)

扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)

Linux/OS X 下常用命令与正则表达式的关系

命令

正则表达式特定

grep

支持 BREs、EREs、PREs 正则表达式
1. 指令后不跟任何参数, 则表示要使用 “BREs”
2. grep 指令后跟 ”-E” 参数, 则表示要使用 “EREs”;
3. grep 指令后跟 “-P” 参数, 则表示要使用 “PREs”。

egrep

支持 EREs、PREs 正则表达式
1. egrep 指令后不跟任何参数, 则表示要使用 “EREs”;
2. egrep 指令后跟 “-P” 参数, 则表示要使用 “PREs”。

sed

支持 BREs、EREs
1. sed 指令默认是使用 “BREs”;
2. sed 指令后跟 “-r” 参数 , 则表示要使用“EREs”。

awk

支持 EREs,并且默认使用 “EREs”

sed 正则表达式特点

  • sed 功能与作用

sed 处理的对象:文本文件sed 处理操作:对文本文件的内容进行 — 查找、替换、删除、增加等操作sed 在处理文本文件的时候,也是按行处理的

awk 正则表达式特点

awk 处理的对象:文本文件awk 处理操作:主要是对列进行操作

元字符

  • 正则表达式主要依赖于元字符

正则表达式

描述

示例

\b

单词边界

\bcool\b匹配cool,不匹配coolant

\B

非单词边界

cool\B匹配coolant不匹配cool

\d

单个数字字符

b\db匹配b2b,不匹配bcb

\D

单个非数字字符

b\Db匹配bcb不匹配b2b

\w

单个单词字符(字母,数字与_)

\w匹配1或a,不匹配&

\W

单个非单词字符

\W匹配&,不匹配1或a

\n

换行符

\n匹配一个新行

\s

单个空白字符

x\sx匹配xx,不匹配xx

\S

单个非空白字符

x\S\x匹配xkx,不匹配xx

\r

回车

\r匹配回车

\t

横向制表符

\t匹配一个横向制表符

\v

垂直制表符

\v匹配一个垂直制表符

\f

换页符

\f匹配一个换页符

基本正则表达式

字符

描述

^

^word搜索以word开头的内容

$

word$搜索以word结尾的内容

^$

表示空行,不是空格

.

代表且只能代表任意一个字符(不匹配空行)

\

转义字符,让有特殊含义的字符脱掉马甲,现出原形,如.只表示小数点

*

重复之前的字符或文本0个或多个,之前的文本或字符连续0次或多次

.*

任意多个字符

^.*

以任意多个字符串开头,.*尽可能多,有多少算多少,贪婪性

括号表达式

[abc][0- 9][.,/]

匹配字符集合内的任意一个字符a或b或c:[a-z]匹配所有小写字母;表示一个整 体,内藏无限可能;[abc]找a或b或c可以写成[a-c]

[^abc]

匹配不包含后的任意字符a或b或c,是对[abc]的取反,且与含义不同

a{n,m}

重复前面a字符n到m次(如果用egrep或sed -r可去掉斜线)

a{n,}

重复前面a字符至少n次,如果用egrep或sed -r可去掉斜线

a{n}

重复前面a字符n次,如果用egrep或sed -r可去掉斜线

扩展正则表达式ERE

特殊字符

描述

+

重复前一个字符一次或一次以上,前一个字符连续一个或多个,把连续的文本/ 字符取出

重复前面一个字符0次或1次(.是有且只有1个)

()

分组过滤被括起来的东西表示一个整体(一个字符),后向引用

懒惰匹配和贪婪匹配

  • 贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符。
  • 懒惰匹配,有时候需要匹配尽可能少的字符。

如果: A.*B,它将会匹配最长的以A开始,以B结束的字符串。那用它来搜索AABAB的话,它会匹配整个字符串AABAB。我们可能需要匹配的是AB这样的话就需要用到懒惰匹配了。

代码/语法

描述

*?

重复任意次,但尽可能少重复

+?

重复1次或更多次,但尽可能少重复

??

重复0次或1次,但尽可能少重复

{n,m}?

重复n到m次,但尽可能少重复

{n,}?

重复n次以上,但尽可能少重复

正则小结

  • 基础正则:BRE

^

$

.

*

.*

[abc]

[^abc]

  • 扩展正则:ERE

+

?

()

{}

a{n,m}

a{n,}

a{n}

转义字符:将字符的意思改变(不支持正则符号的,转变字符含义为正则,支持正则的转变 为普通字符含义)

补充说明

正则表达式

描述

示例

[:alnum:]

[a-zA-Z0-9]匹配任意一个字母或数字字符

[[:alnum:]]+

[:alpha:]

匹配任意一个字母字符(包括大小写字母)

[[:alpha:]]{4}

[:blank:]

空格与制表符(横向纵向)

[[:blank:]]*

[:digit:]

匹配任意一个数字字符

[[:digit:]]?

[:lower:]

匹配小写字母

[[:lower:]]{5,}

[:upper:]

匹配大写字母

([[:upper:]]+)?

[:punct:]

匹配标点符号

[[:punct:]]

[:space:]

匹配一个包括换行符,回车等在内的所有空白符

[[:space:]]+

[:graph:]

匹配任何一个可以看得见的且可以打印的字符

[[:graph:]]

[:xdigit:]

任何一个十六进制数

[[:xdigit:]]+

[:cntrl:]

任何一个控制字符(ASCII字符集中的前32个字符)

[[:cntrl:]]

[:print:]

任何一个可以打印的字符

[[:print:]]

写在最后

学会正则表达式还是有必要的,配合grep,egrep,sed -r,awk更为强大,至少以后你的同事写出来后,不会在脑子里出现 “这是写的啥玩意儿啊?怎么我看不懂呢” 的想法或者同事不会正则表达式就可以牛逼的说,让我来。

本文来自于(喜欢的盆友可以关注哦):https://mp.weixin.qq.com/s/pGOz_f9_RCTrUYTVejUyJQ

本文所有内容来自互联网,如有侵权/不实内容请联系我们删除,联系邮箱postusb@foxmail.com

发布者:缘分,转转请注明出处:https://www.bjxdyg.com/life/109714.html

(0)
缘分缘分
上一篇 2023年 3月 5日 下午7:41
下一篇 2023年 3月 5日

相关推荐

  • 苹果12说接口有液体充不了电(苹果12说接口有液体充不了电修要多少钱)

    以为是段子,没想到真实发生了。 前几天有网友iPhone 12进水,提示无法充电。不过,手机可以正常使用,说明进水并没有对硬件产生实质影响,于是只能到网上发帖求助。 有网友表示用一首歌就可以把水给震出来,结果实测真的有效。。。 你觉得这方法可行吗?

    2023年 5月 10日
    18800
  • 手机如何修改wifi名称(如何修改苹果手机热点名称)

    很多朋友私信我询问修改家中WiFi网络名称的方法,今天以水星MW325R路由器为例,分享在手机上修改WiFi名称的方法。 第一步,运行浏览器 点击手机桌面的浏览器图标运行它。如下图 第二步,登录路由器 运行浏览器以后,在浏览器地址栏内输入“192.168.0.1”(这是路由器的默认网关,大多数路由器的默认网关为192.168.0.1或192.168.1.1,…

    2023年 3月 23日
    16900
  • 指纹锁如何重置密码和指纹(逍遥马指纹锁如何重置密码和指纹)

    智能门锁的出现,改变了消费者的生活方式。在解锁方式方面,伴随着生物识别技术的发展,从早期的密码解锁,到如今的人脸识别等新型开锁方式,无不让人称道。 其中,密码解锁0-9十位数字排列组合带来的海量数据安全性极高,作为VOC智能锁最普遍的解锁方式,密码到底能有多百变?快来了解一下! 管理密码 管理密码对智能锁有着至关重要的作用,它是具备最高权限的用户密码,可以进…

    2023年 3月 23日
    27200
  • 任素汐事件(任素汐事件图片)

    大家好,近期很多朋友对于任素汐事件产不是很理解。然后还有一些网友想弄清楚任素汐事件图片,泰缘号(www.bjxdyg.com)已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 最近有媒体曝出演员任素汐疑似插足他人婚姻,被扒出来此人正是演员董博。随后董博前妻透露任素汐在与李洋婚内插足自己的婚姻,称其“德不配位必有灾殃”。 ? 董博前妻…

    趣味生活 2022年 11月 25日
    26800
  • 喝艾叶水的功效与作用禁忌(喝艾叶水的功效与作用禁忌知乎)

    大家好,近期很多朋友对于喝艾叶水的功效与作用禁忌产不是很理解。然后还有一些网友想弄清楚喝艾叶水的功效与作用禁忌知乎,泰缘号(www.bjxdyg.com)已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 都说“清明食艾,无灾无难”,虽然清明节快过去两个月了,但是苗苗的奶奶还是经常用艾叶煮鸡蛋给她吃,说是可以驱寒祛湿,苗苗吃得腻了,想…

    趣味生活 2023年 1月 5日
    18400

联系邮箱

postusb@foxmail.com

邮箱咨询: QQ交谈

邮箱:postusb@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息