目录
1. 字符组:([])允许匹配一组可能出现的字符。
使用方式:用中括号 [ ] 表示
例如:文本是china和China时
解:
\ [Cc]hina \
2. 区间:连字符 ( - ) 代表区间
要匹配任意数字可以使用\[0-9]\ ;
如果想要匹配所有小写字母,可以写成\[a-z]\;
想要匹配所有大写字母可以写成\[A-Z]\。
例如:文本:dfghj、ASDA、09876
解:
\[A-Za-z0-9]\
3. 匹配特殊字符
使用转义,即反斜杠 ( \ ) 加需要被转义的符号
例如:三组文本: ------、[]、()
解:
\[\-\s\(]\
4. 取反(^)
即匹配除该区间之外的所有元素
例如:文本是bu[-!@
解:
\^0-9\
5. 快捷方式
匹配数字 ( \d )是0-9的缩写,匹配任意单词字符 ( \w )是A-Za-z的缩写
例如:三组文本:0098765xcfghjkFGHJK、asdf09876、Adjshb4567
解:
\[\d\w]\
匹配空白(\s)、单词边界(\b)
例如:文本是master
解:
\\bmaster\b\
注意:快捷方式中字母d、w、s大写表示取反
任意字符(.): 注意不能匹配换行符(\n)
6. 开始与结束
正则表达式中 ^指定的是一个字符串的开始,$指定的是一个字符串的结束。
例如:要匹配以http开头的文本
解:
\^http\
例如:要匹配以o结尾的文本
解:
\o$\
7. 可选字符(?)
有时,想要匹配一个单词的不同写法,比如color和colour。
在u后面加一个?,这意味着正则表达式引擎将会期望该字符出现零次或一次。
解:
\colou?r\
8. 匹配多组数据({N})
在此之前,我们只匹配一组数据,在实际开发中需要匹配多组数据,这就需要({N}), N表示匹配N次
例如:文本是电话号码:0001-8888888
解:
\\d{4}-\d{7}\
9. 重复区间({M,N})
用于不知道区间长度的场景,比如身份证有15位也有18位
例如:两组文本:567、7654
解:
\{3, 4}\
注意:在本例中结果优先匹配4位,因为该正则表达式默认贪婪模式,若要优先搜索3 位,要在{}后面加一个问号(?), 意为懒惰模式
10. 开闭区间
在重复区间中,如果只写{M,}就表示从M一直递增,{,N}就表示从N一直递减
其中 * 等价于 {0,},+ 等价于 {1,}。