基本语法
可见原子
- 指Unicode编码中用键盘输出后肉眼可见的字符。
1、标点;
2、英文字母数字;
3、汉字,日文,阿拉伯文等其他语言文字;
4、∑,∈,≌等数理化公式符号;
5、其他可见字符。
- 指Unicode编码中用键盘输出后肉眼可见的字符。
不可见原子
- 就是Unicode编码中用键盘输出后肉眼不可见的字符。
1、换行符:\n;
2、回车:\r;
3、制表符:\t;
4、空格;
5、其他不可见的符号。
- 就是Unicode编码中用键盘输出后肉眼不可见的字符。
原子匹配方式
- | 匹配两个或多个分支选择
[ ] 匹配方括号中任意一个原子
[^]匹配不再方括号中的任意字符
- | 匹配两个或多个分支选择
原子集合
\n 、line feed、换行的意思,打印机遇到换行符,就移到下一行。
\r 、carriage return的缩写、回车的意思,打印机遇到回车符,就会移回行首。
\t 、tab、制表的意思,tab键按一下就是一个制表符,用来对齐文本作 用,让排版像表格一样整齐。
\v 、和摇篮进行曲同学说的一样,vertical tab的缩写,垂直制表符。
\f 、form feed,换版、换页的意思,以前打印机遇到这个换版符就会换另一张纸。
\d 、digit,数字的意思。并非decimal、后者大多是指小数。
\s 、white space,透明的间隔,即[换版符、换行符、回车符、制表符、垂直制表符、空格符],老师ppt可能少写了一个空格符。
\w 、word,单词的意思,和网站用户名密码只允许英文字母同理(其实是包括字母、数字、下划线)。
量词
- {n} 匹配恰好出现n次
{n,} 匹配至少n次
{n, m} 匹配最少n次,最多m次
* 匹配任意次 (出现0次,或者出现n次)
? 匹配0次或一次
+ 匹配至少一次,也就是一到无穷大次
- {n} 匹配恰好出现n次
边界控制
^ 匹配字符串开始的位置 ^string:只能匹配一开始就为string字符串,不能有空格,匹配行的开头和结尾
$ 匹配字符串结尾的位置
()//括号的整体为一个原子
修正模式
默认 贪婪匹配:匹配结果存在歧义时取其长,默认匹配模式,添加在匹配模式的最后面,实例/0-9/
U 懒惰匹配,匹配结果存在歧义时取其短,实例/0-9/U
i 忽略英文字母大小写,实例/aabb/i
x 忽略空白,实例/aa bb/x
s 让元字符”.”匹配包括换行在内的所有字符
界定符 ‘/’
举个邮箱的例子,通用邮箱正则随着邮箱格式改变,也在改变着。
邮箱账号格式开始出现xxx.admin@163.com之类在@前可出现”.”的例子。为了匹配,邮箱正则改变为”/^(\w)+(.|-|\w)+)*@(\w+(.\w)+)$”
(\w)+表示可以有1个以上字母、数字、下划线;
((.\w)+)表示可以有1个以上.+字母、数字、下划线;
(.\w)+)*表示可以有0个或1个以上.+字母、数字、下划线;
是不是挺好理解的?
也可以这样写”^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?.\w)+$”
更加明了了。