网站提示代码,无货源如何开网店,dedecms做论坛网站,xuezuo网站建设智能指针 一、背景#x1f388;1.1. 模式匹配#x1f388;1.2. 文本替换#x1f388;1.3. 数据验证#x1f388;1.4. 信息提取#x1f388;1.5. 拆分字符串#x1f388;1.6. 高级搜索功能 二、原料2.1 参考视频2.2 验证网址 三、用法3.1 限定符3.1.1 ?3.1.2 *3.1.3 3.1.… 智能指针 一、背景1.1. 模式匹配1.2. 文本替换1.3. 数据验证1.4. 信息提取1.5. 拆分字符串1.6. 高级搜索功能 二、原料2.1 参考视频2.2 验证网址 三、用法3.1 限定符3.1.1 ?3.1.2 *3.1.3 3.1.4 {}3.1.4 () 3.2 或运算符3.3 字符类3.3.1 []3.3.2 ^ 3.3 特殊字符3.3.1 一般特殊3.3.2 二般特殊 四、高级用法4.1 贪婪与懒惰匹配 五、实例5.1 匹配rgb颜色5.2 匹配IPV4 六、总结6.1 评论区总结6.2 视频总结 一、背景
正则表达式是一个非常灵活且功能强大的工具可用于各种文本处理和数据操作任务。无论是在编程中还是在日常文本编辑中掌握正则表达式都能显著提高效率和准确性。正则表达式Regular Expression简称 regex or regexp 是一种用于匹配和操作字符串的强大工具。它可以用于多种编程语言和工具中广泛应用于文本处理、数据验证、信息提取等任务。以下是正则表达式的一些主要作用
1.1. 模式匹配
正则表达式可以帮助你查找特定模式的文本。例如你可以找到所有以 “abc” 开头的字符串或是匹配任何包含数字的字符串。
1.2. 文本替换
你可以使用正则表达式在文本中进行替换操作。例如可以将所有的邮箱地址替换为一个统一格式或者移除特定模式的字符串。
1.3. 数据验证
正则表达式常用于验证输入数据的格式例如验证电子邮件地址、电话号码、日期格式等。这可以确保用户输入的内容符合预期格式。
1.4. 信息提取
利用正则表达式可以从文本中提取特定的信息。例如从日志文件中提取日期、事件代码或任何特定模式的信息。
1.5. 拆分字符串
使用正则表达式可以根据特定模式拆分字符串例如将一段文本按空格、标点符号等分割开来。
1.6. 高级搜索功能
在一些文本编辑器或 IDE 中正则表达式提供了强大的搜索功能允许用户使用复杂的模式来查找文本。
二、原料
2.1 参考视频
【10分钟快速掌握正则表达式】 https://www.bilibili.com/video/BV1da4y1p7iZ/?share_sourcecopy_webvd_sourcee52fceea42b773b494141fae690ef6c5
2.2 验证网址
https://regex101.com/
三、用法
万事俱备我们直接切入正题
3.1 限定符
3.1.1 ?
测试实例use a used variable name is illegal. 表达式 used? 意义表示: 字符d这个词出现0次或1次 3.1.2 *
测试实例
ac
abc
abbbbbbc
adc
addddddc表达式 ab*c 意义表示: 代表b可以没有也可以出现多次
3.1.3
测试实例
ac
abc
abbbbbbc
adc
addddddc表达式 abc 意义表示: 代表b可出现一次以上字符
3.1.4 {}
测试实例
abc
abbc
abbbbbbbbbc
abbbbbbc
ac
adc
addddddc表达式 ab{2}c 意义表示: 代表b可出现2次
表达式 ab{2,6}c意义表示: 代表b可出现2次到6次字符 表达式
ab{2,}c意义表示: 代表b可出现2次以上
3.1.4 ()
前面我们涉及的都是一个字符如果我们需要匹配两个字符可以通过()括起来 表达式
a(bb){1,3}c意义表示: 代表bb可出现1次到3次字符
3.2 或运算符
测试实例
a cat
a dog
a bird表达式 a (cat|dog) 意义表示: 先匹配a 空格然后后面要么是dog要么是cat
3.3 字符类
3.3.1 []
测试实例
abc
tiger
aabbcc
dog表达式 [abc] 意义表示: 匹配由字母abc构成的字母的单词,方括号里的内容代表要求匹配的字符只能取自于它们
3.3.2 ^
测试实例
abc
tiger
aabbcc
dog
1234678
abc123456
ABCDEFG表达式 [^1-9] 意义表示: 匹配非数字字符匹配除了^号后面的字符的字符
3.3 特殊字符
3.3.1 一般特殊
\d 匹配任何数字相当于 [0-9]。
\D 匹配任何非数字字符相当于 [^0-9]。
\w 匹配任何单词字符字母、数字或下划线相当于 [a-zA-Z0-9_]。
\W 匹配任何非单词字符相当于 [^a-zA-Z0-9_]。
\s 匹配任何空白字符空格、制表符、换行符等。
\S 匹配任何非空白字符。
.:表示任意字符但是不包括换行符3.3.2 二般特殊
^ 匹配输入字符串的开始位置。
例子^abc 仅匹配以 abc 开头的字符串。$ 匹配输入字符串的结束位置。
例子abc$ 仅匹配以 abc 结尾的字符串四、高级用法
4.1 贪婪与懒惰匹配
spanbThis is a sample text/b/span表达式:.? 意义 它会将正则表达式中的默认的贪婪匹配切换为懒惰匹配。 解析 .?
匹配字符 表示开始一个标签。
.匹配任意单个字符除了换行符。这意味着这个正则表达式会匹配标签内的任意字符。
表示前面的字符在本例中是 .出现一次或多次。因此. 会匹配一个或多个任意字符。
?在这里是一个惰性量词lazy quantifier。将 ? 放在 后面使得正则表达式匹配尽可能少的字符即可即最小匹配。因此.? 会匹配至少一个字符但会尽可能少地匹配以便找到整个模式的结束部分。
匹配字符 表示结束一个标签。五、实例
5.1 匹配rgb颜色
#00
#ffffff
#ffaaff
#00hh80
#aabbcc
#000000
#ffffffff匹配字符串:
#[a-fA-F0-9]{6}\b其中\b是单词字符的边界用来去掉最后一个#ffffffff
5.2 匹配IPV4
123
255.255.255.0
192.168.0.1
0.0.0.0
256.1.1.1
This is a string.
123.123.0匹配字符串:
复杂还没搞懂六、总结
6.1 评论区总结
来自评论区《喝酸奶的一颗竹子》
匹配符
d? d出现0/1次
a a可以出现0/多次
a a出现一次以上
a6 a出现6次
a2 a出现2次以上
a26 a出现2-6次
匹配多个字符
(ab) ab出现一次以上
或运算
a (cat|dog) 匹配 a cat or a dog
a cat|dog 匹配 a cat or dog
字符类
匹配由abc构成的数据【abc】 abc出现一次以上 abc aabbcc
【a-zA-Z0-9】 ABCabc123
^ 排除 【^0-9】 匹配0-9之外的数据(包括换行符)
元字符
\d 数字字符 \d 匹配一个以上的数字
\D 非数字字符
\w 单词字符 单词 数字 下划线即英文字符
\W 非单词字符
\s 空白符 包含空格和换行符
\S 非空白字符
\b 单词的边界 单词的开头或结尾 单词与符号之前的边界
\B 非单词的边界 符号与符号 单词与单词的边界
. 任意字符不包含换行符
\. 表示. 通过\进行了转意
^ 匹配行首 $ 匹配行尾
贪婪匹配
strongbhttps://www.wondershare. com/strong/b
. 会匹配整串 因为是贪婪匹配
.? 只匹配两个标签代码? 设置为懒惰匹配6.2 视频总结