正则表达式学习
前言
感觉这玩意儿一直都有用到,但是总是半知半解,所以今天一探究竟
一,正则表达式是个啥
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
二,学习环境
三, 匹配任意字符
直接用想目的字符匹配
. 代表匹配任意字符
如果想匹配 . 用:\.
四, 匹配子母河数字
\w: 匹配字母和数字
\W:匹配字母和数字的补集
\d: 匹配数字
\D: 匹配数字的补集
\d\.\d: 匹配小数
\s: 匹配空白字符 [空格和制表符(tab)]
五, 字符集合
[abc]: 匹配含有abc的字符
[abc] == [a-c]
六,重复一次或多次
- runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。
- runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
- colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。
- **yo{2} ** 精确匹配两个o,即yoo
- yo{2-5}: 匹配2-5个o。
- yo{2,}:匹配大于等于两个o。
七,分组匹配
(.+)pattern
(.+)是丐帮帮主,(.+)是大理的王子 乔峰是丐帮帮主,段誉是大理的王子 $1就表示乔峰, $2就表示段誉
八,特殊字符
特别字符 | 描述 |
---|---|
$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。 |
( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。 |
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。 |
+ | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。 |
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 |
[ | 标记一个中括号表达式的开始。要匹配 [,请使用 [。 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。 |
\ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\’ 匹配 “”,而 ‘(’ 则匹配 “(”。 |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。 |
{ | 标记限定符表达式的开始。要匹配 {,请使用 {。 |
| | 指明两项之间的一个选择。要匹配 |,请使用 |。 |