正则表达式初学

正则表达式

1.限定符

​ 1)?:表示前面一个字母出现了0次一次
​ 例如:ab?c=ac/abc

​ 2)*:表示前面一个字母出现了0次多次
​ 例如:ab * c=ac/abc/abbbbbbc

​ 3)+:表示前面一个字母出现了一次多次
​ 例如:ab+c=abc/abbbbbbc

​ 4){x}
​ (1){6}:使前面一个字母出现六次
​ 例如:ab{6}c=abbbbbbc

​ (2){2,6}:使前面的一个字母出现两次到六次
​ 例如:ab{2,6}c=abbc/abbbbc/abbbbbbc

​ (3){2,}:使前面的一个字母出现两次以上
​ 例如:ab{2,}c=abbc/abbbbbbc/abbbbbbbbbc

​ 4)倘若要同时匹配多个字符,可以在需要匹配的字符旁加上“()”

2.“或”运算符

​ X (XX|XX):先匹配前面的“X”,后面括号中的内容表示要么是cat,要么是dog
​ 例如:a (cat|dog)=a cat / a dog

3.字符类

​ [XXX]+:匹配由“XXX”这几个字母构成的单词,方括号里的内容代表要求匹配的字符只能取自于它们

​ 1)[a-z]:匹配所有小写英文字符

​ 2)[a-zA-Z]:匹配所有英文字符

​ 3)[0-9]:匹配所有数字

​ 4)[ ^XXX ]:匹配除了“ ^ ”后面列出的以外的字符
​ 例如:[ ^ 0-9 ]=所有非数字字符(包括换行符)

4.元字符

​ 1.\d:代表所有的数字字符

​ 2.\w:代表所有的英文、数字及下划线

​ 3.\s:代表空白符(包含Tab和换行符)

​ 4.\D:代表非数字字符

​ 5.\W:代表非单词字符

​ 6.\S:代表非空白字符

​ 7. 。:代表任意字符,但不包括换行符

​ 8.^ :匹配行首
​ 例如:^a只会匹配行首的a

​ 9.$ :匹配行尾
​ 例如:$a只会匹配行尾的a

5.贪婪与非贪婪匹配

1)什么是贪婪与非贪婪匹配

​ 例子:’abcdefc‘

贪婪匹配:一般趋向于最大长度匹配,也就是所谓的贪婪匹配,如上例,结果就是匹配到:abcaxc(*ab.c)。

​ **非贪婪匹配:**匹配到的结果字符越短,就选哪一个,这就是所谓的非贪婪匹配,如上例。结果就是匹配到:abc(ab.*?c)。

正则表达式初学_第1张图片
正则表达式初学_第2张图片

2)编程中如何区分两种模式

默认是贪婪模式,在量词后面直接加上一个问号?就是非贪婪模式。

我们熟知的量词有:

符号 含义
* 任意多个
+ 至少一个
0或1个
{m,n} m到n个

3)实例

在这里插入图片描述

​ 尝试匹配HTML标签,运用

<.+>

​ 进行尝试

​ 结果
正则表达式初学_第3张图片
​ 不成功,估计需要用到非贪婪匹配

​ 就尝试在**+后加上一个?**
正则表达式初学_第4张图片
​ 成功

6.总结

​ 目前我现在就学了这么多,如有问题,还望莫怪。

本文参考文章和视频:

视频:https://www.bilibili.com/video/BV1da4y1p7iZ?share_source=copy_web

文章:https://blog.csdn.net/m0_37673307/article/details/81631880?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161864958216780269826861%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161864958216780269826861&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-81631880.first_rank_v2_pc_rank_v29&utm_term=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%B4%AA%E5%A9%AA

本文运用的正则表达式网址为:https://regex101.com/

你可能感兴趣的:(正则表达式)