杂学第九篇:小白对正则匹配的学习和总结!!!!

烦烦烦!!!正则匹配作为开发中一个利器,要用的时候我只能搜百度!!!为什么???我要充分理解它,熟练使用它!!!要用它成功匹配任何字符!!!

认识和总结

正则表达式结构繁多,威力巨大。本想仔仔细细的说清楚,但是奈何功力不到位,自己都有好些不会,那有什么资格全部去解说。

so,精挑细捡,就跟大家讨论下一些个人经验,比如开发中经常会碰到的,或者容易忽视的细节。

1.总结下 一些元字符中经常不用,但是用处极大的元字符。

\s :匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
你们看,多强大,你们要是想去掉字符串中的空格,换行,回车,制表符。还需要写一大串吗?一个\s搞定。

\S :这个就是\s的取反!!!,也就是[^ \f\n\r\t\v]。我靠,上面那个能替换掉那个非打印字符。这个就能提取整个字符串中的除了非打印字符的其他字符。一个替换,一个提取。

^…$ :如果我们的正则表达式注重对字符串的整体匹配(也就是不涉及换行),比如邮箱,手机号,url,用户名等建议在开头和结尾加上这两个定位符,返回唯一结果。如下图,加了^和$的只会判断整个字符串,而不加,则会寻找整个字符串中符合表达式的子字符串。
在这里插入图片描述
. : . 看起来一点都不起眼,甚至没多少人。但你们知道它能干啥不??匹配除换行符 \n 之外的任何单字符,如果你的字符串中没有\n,它能立即返回整个字符串的单个字符,额,用处不大是不知道用来干嘛,得到字符串的单个字符方式和多,比它速度也快,所以略显鸡肋。

* + ? :这三个很容易搞混它们的意思,如果经常用就会很清楚啦。* 匹配 0-n次,相当于{0,}。而 + 匹配1-n次,相当于{1,}? 匹配 0或1次,相当于{0,1}

* . ? :这三个有一个用法要注意。
".*" 是一个很贪婪的表达式,它会尽可能大的匹配符合。如下图
直接将最前面<和最后面的>中间的都匹配出来
".*?" 加了一个?,?能保证只匹配最近的一对<>,所以它能返回两个<>之间的内容,而不是最大的那个。如下图
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值