正则表达式

1.限定符【匹配一个字符的重复】
?   :表示在该限定符的前面的一个字符出现0次或1次。【如/used?,可以匹配的是use和used】
*     :匹配前面一个字符出现零次或多次字符。【如/worl*d,可以匹配word,world,worlld,还有wor-好多个l-d】.
+    :匹配前面一个字符出现一次以上。【同样用/worl+d来举例,就无法匹配word,只能是world,还有好多个l那样】
如果要指定具体的出现次数,可以使用花括号。
【如/ga{6}me,就只会匹配gaaaaaame】
同理,如果是一个范围。如3-8之间。【就是/ga{3,8}me,就会匹配a出现3次到八次之间的字符】
如果是3次以上的字符【就是/ga{3,}me】


如果想匹配多个重复的字符。例如abababc这样,我们需要匹配ab两个字符,可以书写成【/(ab)+】


2.或·运算符
比如【/a (road|goal)】,就会匹配a road或a goal。这里的括号是不能省略的,否则会匹配a road或goal。


3.字符类
/[adc]+,在方括号的使用中,表明匹配的是方括号内具体的字符。这里的含义是匹配由adc这几个字母构成的字符【位置可以颠倒或重复,意思就是有a或d或c均可,不要求完全一样】
我们也可以在方括号里指定字符的范围。如/[a-zA-Z]表示所有的小写和大写的英文字符,/[0-9]表示所有的数字,如果是加上^符号,如
/[^0-9]+表示匹配除数字外的所有字符

4.元字符
\d表示数字字符=[0-9]
\w表示单词字符【英文,数字,下划线】
\s表示空白符【包括tab和enter】
\D表示非数字字符
\W表示非单词字符
\S表示非空白字符
补充:.(就是点),在正则表达式中也是一个特殊字符,表示任意字符(不包含换行符)。
^匹配行首【注意和方括号中的区分】
$匹配行尾
比如^a会匹配首字母的a,a$会匹配尾字母的a。

5.其它概念
【贪婪与懒惰匹配】
比如一部分HTML代码
<html><b>I have a dream</b></html>

如果用/<.+>进行匹配,就会匹配所有的字符。但是如果我们用/<.+?>进行匹配,就只会匹配两边的HTML标签。这里是将正则表达式中默认的
贪婪匹配(greedy match)切换为懒惰匹配(lazy match)。
\b表示匹配边界。
如匹配RGB颜色,我们用#[a-fA-F0-9]{6}\b进行匹配,可以避免超过6个字符的文本也被识别为RGB颜色。

匹配IP地址:\d+\.\d+\.\d+\.\d+【这里会有越界的问题,如出现不在0-255的数字】
所以需要改良:也可以了解一下,正确的匹配表达式为\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
解释一下,如果前两位取25,那么最后一位只能取0-5之间的数字,如果第一位是2,第二位是0-4之间的数,那么最后一位可以是0-9的任意值
,这里可以用\d代替,如果第一位是0或1,那么最后两位可以取00-99之间的任意数字,可以用\d\d代替。我们知道,IP地址也可以每一部分由两位
或一位数字构成,因此我们可以直接将这里的第一个数字和第三个数字后面都加一个?,然后匹配句点,用\.表示,这里需要重复三次,这样正则表达式就会去匹配
IP地址的前三段,然后第四段复制第一段的匹配式,最后再首位都加入\b来匹配字符的边界。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mez_Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值