正则表达式
reference
张高子
正则表达式用来定向选择某些内容,能省去不少手动选择的时间。比如我说我就比较常用notepad++来匹配字符串。对于一个正常的表达式总是应该包括两部分,操作内容与逻辑组件。比方说1+1=2这种,1就是操作数,是一个操作对象,+,=就是对操作数进行逻辑运算得到的结果。
正则表达式的逻辑组件有以下几种:
- {}:几种常见的用法:{n}表示匹配确定的n次,{n,}匹配至少n次,{n,m}匹配n~m次之间的次数。
- []:匹配括号当中的任何一个字符。如果是26个字母当中的任何一个就可以用[a-z],如果包含大小的字母应该使用[a-zA-Z]。
- ():就是一个范围,你可以用这个东西告诉匹配器你要匹配的是字符组还是单个字符,可以参见下面*的例子。
- |:两个匹配条件进行或运算,比如说z|food就是要么是z要么是food。
- ^:表示逻辑上取反。
- *:匹配0或多个在它之前的子表达式,和通配符*差不多,可以针对字符或者字符组。字符组可以出现零次也可以出现多次,比如说zoo*(注:可以匹配到zooo,匹配不到zoozoo),和(zoo)*(注:可以匹配到zoozoo)。
- +:同样匹配字符或者字符组,前面的字符或者字符组可以出现一次也可以出现多次。
- ?:匹配前面的子表达式零次或一次,其余特性与上面差不多。因为匹配次数相对较少,所以也被称为非贪婪匹配。在这种情况下,一般使用a.*?b这种格式。举个例子这个匹配式可以在aabab中匹配到aab和ab。
与位置相关
- ^:匹配一行的开始,比如说 ^zoo会匹配以zoo开始一行的情况;
- $:匹配行尾,注意用法是zoo$,匹配一行的结束。
- \A:仅匹配字符串开头;
- \Z:仅匹配字符串末尾;
- \b:代表单次的开头或者结尾,一般表示\w与\W之间的那个隐藏的位置。
操作数组件主要是各种通配符,主要的意义广泛的通配符有以下几种:
- \d:代表十进制的数字,等价于[0-9]
- \D:匹配非数字,等于 [^0-9]
- \s:代表换行,Tab或者空格
- \S:代表非空白字符,也就是上面的字符取反
- \w:匹配大小写字母,数字或者下划线或者汉字(匹配汉字可能会出现问题)。
- \W:匹配\w之外的字符。
相关推荐
wangzhaotongalex 2020-10-20
rechanel 2020-11-16
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
taomengxing 2020-09-07
MaggieRose 2020-08-19
jyj00 2020-08-15
MaggieRose 2020-07-04
modaiairen 2020-06-28
ziggurat 2020-06-28
JnX 2020-06-27
jyj00 2020-06-26
山水沐光 2020-06-25
shqhope 2020-06-23
eroshn 2020-06-21
码墨 2020-06-16
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13