正则表达式
1.什么是正则表达式?
a) 能够表现一定规则的表达式..
^tel:\d{1,3}-[0]\d{2,3}-\d{8,11}$ 这就是一个正则表达式
tel:86-0531-18812345678
2.和正则表达式相似的事物?
乱/神秘/看不懂
a.女人的心 神秘 看不懂 女人懂
b.道士的符 神秘 看不懂 道士认识
c.医生的字 神秘 看不懂 医院相关人员
d.正则表达式 神秘 看不懂 程序人员
3.正则表达式的作用:
a) 验证用户名是否合法
b) 验证密码强度是否足够
c) 验证是否是一个邮箱地址
d) BBS编辑器
e) 新闻采集器
f) 小偷程序。
g) WEBQQ
4.正则表达式的学习流程
a) 正则表达式的语法的学习
b) 正则表达式函数的应用。
5.正则表达式的语法:
正则表达式的组成分为4个部分
1.正则表达式的定界符
2.正则表达式的原子
3.正则表达式的元字符(原子修饰符)【可以没有】
4.正则表达式的模式修正符【可以没有】
6.正则定界符:
a) 正则定界符就是用来声明正则表达式边界的符号
b) 常用的正则定界符是 /
c) 实际上在PHP中,只要不是数字、字母和\都可以作为定界符使用
注意:1.一个正则表达式必须有成对的正则定界符
2.一个正则表达式由于是字符串,所以最外层一定有单双引号
7.正则表达式的原子。
a) 组成正则表达式的最小单位就是原子。
b) 所有可见字符都是原子
c) 所有不可见字符也都是原子。
d) \D 表示数字以外的任意字符除了0-9
e) \d 表示数字0-9
f) \S 表示所有可见字符
g) \s 表示所有不可见字符
h) \W 表示除了_字母和数字之外的任意字符
i) \w 表示字母、数字和_
8.元字符(原子修饰符)
[] 原子列表
[abcdef]表示从指定字符中选取一个原子
[A-G]表示从A-G之间的任意字符
[^G-K]表示除了G-K之外的任意字符(排除列表)
数量元字符
+ 表示一个以上的原子 1个以上
* 表示人一个原子 0个以上
? 表示0个或者1个字符
{m,n} 表示大于等于m个小于等于n个
{m,} 表示m个以上的原子
{m} 表示m个原子
词边界元字符
词边界都有哪些字符?不可见字符、标点符号、特殊字符除了_、字符串的开始和结束位置
\b 表示一个单词的边界位置 (词边界)
\B 表示不是一个单词的边界(非词边界)
限定开始和结束的元字符
^ 表示限定以指定的字符开头
$ 表示限定以指定的字符结尾
^内容$ 仅匹配结果和内容完全一致的字符串
| 或运算的元字符
注意: |运算会在左右2册的字符串中运算,而不是最有2个字符,如果需要2个字符的或运算,使用()即可
() 模式单元
1.改变运算优先级
2.将多个原子视为一个原子处理
3.将()中匹配的内容存储到内存当中,方便后期使用(反向引用)
4.在()中开始的位置书写?:字符将取消()中内存存于内存的功能,节省内存开销
. 表示除了\n之外的任意一个字符
注意事项:在任何正则表达式中使用的字符如果是和元字符相同,必须进行转移操作!
模式修正符:
i 不区分大小写、
x 忽略正则表达式中的空白字符
s 使得.可以匹配所有字符包括\n
m 将字符串视为多行处理。(字符串中要有换行符号)对于^和$符号的匹配有影响
U 改变正则表达式的贪婪模式。
注意:在正则中使用.*?表示内容时,是默认使用非贪婪模式
S 加速匹配(除了效率没有其他效果)
正则函数:
本文详细介绍了正则表达式的基本概念,如定界符、原子、元字符和模式修正符,并列举了其在验证用户名、邮箱、网页采集等场景中的应用。同时,给出了正则表达式的学习流程,包括语法学习和函数应用。正则表达式作为一种神秘而强大的文本处理工具,虽然初学者可能觉得难以理解,但对程序员来说是必备技能。

被折叠的 条评论
为什么被折叠?



