1 正则表达式
正则表达式由两种字符构成,一种是"元字符",其他是普通字符。
元字符
符号 | 意义 |
---|---|
. | 点号,表示任何一个字符(除\n) |
[…] | 字符组,表示“或”的意思。括号内任意一个字符,如[qwe]r,可以表示为qr,wr,er |
[a-z] | “-”在字符组中,如果在两个字符中间,表示范围;表示a到z的所有字符,比如[a-z]r,表示ar,br…;如果“-”出现在字符的开头,就不是元字符,仅仅表示符号本身;(“.”,“?”在字符组中,同样是字符本身意思,不是表示元字符了) |
[^…] | 脱字符紧挨着字符组第一方括号的后面,表示排除型字符组。例如[^a-z],匹配非a到z的所有字符 |
| | 多选结构,表示“或”,与字符组的区别是,字符组只能表示单个字符,这个可以表示字符串或则表达式。例如rea|reb,生效rea或则reb |
? | 问号,表示该字符的左边字符或表达式出现0次或则或一次 |
* | 表示该字符的左边字符或表达式出现0次或多次 |
+ | 表示该字符的左边字符或表达式出现1次或多次 |
{m,n} | 范围,表示该字符的左边字符或表达式出现m-n次,包括m和n |
^ | 脱字符,匹配行的开头 |
$ | 美元符,匹配行的结尾 |
(…) | 括号,1 限制一个表达式的范围(如可选表达式"|"的范围)。2 可以作为量词的作用于(例如(abc)?) |
\1 | 反向引用,与括号一起使用功能,比如表达式(the),\1匹配字符串“abcdef-$ the,thef”的结果为 “the,the”;比如匹配两个连续出现的字符([a-zA-Z]+) \1匹配字符串“the best best haha haha”的结果为[‘best’, ‘haha’]; |
\<与\> | 单词分界符,可以认为是单词的^与$;有一些工具不支持该元字符 |
练习网站
https://rubular.com/
http://c.runoob.com/front-end/854