开发者社区> 问答> 正文

关于正则表达式的问题

\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i

这段正则的功能是匹配URL

这里的b是为了什么
-a a前面的- 是什么
-a-z0-9+ 后面的一堆&@#/%?=~_|!:,.; 这些是什么啊。。。。如果是符号匹配的话,不需要加吗?

  • 后的[ ] 又是为了什么,不是已经有*了吗?
    最后的 [ ] 后面的 /i 又是什么?

展开
收起
小旋风柴进 2016-03-09 10:55:50 2384 0
1 条回答
写回答
取消 提交回答
  • b:匹配单词边界,即URL前面是个空格
    /i : 忽略大小写
    -a-z0-9+&@#\/%?=~_|!:,.; : 匹配 “-”,a-z,0-`9,“+”,“&”,“@”,“#”,“/”,“%”,“?”,“=”,“~”,“_”,“|”,“!”,“:”,“,”,“.”,“;”`

    后的[ ] 又是为了什么,不是已经有了吗? 对于这个,我感觉可以写成+,表示匹配1次或多次

    2019-07-17 18:55:35
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载