正则表达式中的?:是什么意思?

Magichi 2009-12-08 10:44:47
如果说有个正则表达式是关于uri的
\b(\S+)://(\S+)(?::(\S+))?\b
问:
1、最后个?:是什么意思?(意思是不是是否包含这个匹配符?)
2、最后个?是什么意思?(是不是前面那个组可选?)
3、?:后面的:是什么意思?(是不是一个匹配符?)
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohighthesky 2009-12-08
  • 打赏
  • 举报
回复
?:非捕获分组
正则使用括号时会保存括号里匹配的内容到内存,使用?:不保存,效率更高

后面那个:原义 就是一个分号

更多非捕获分组:http://blog.csdn.net/lxcnn/archive/2009/08/20/4464908.aspx
jiangshun 2009-12-08
  • 打赏
  • 举报
回复
1.(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
2.?重复零次或一次
3.:就是指这个:

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧