惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
腾讯CDC
博客园_首页
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
有赞技术团队
有赞技术团队
博客园 - 叶小钗

博客园 - 厦门刀客

转:CSS之看穿绝对定位 flash fscommand("fullscreen", "true")的自适应分辨率 - 厦门刀客 FLASH如何打开外部exe程序 - 厦门刀客 - 博客园 codesmith5新手-1.建立简单的模板 Codesmith中文乱码的简单设置 - 厦门刀客 - 博客园 中秋节精彩祝福短信 98条一句话经典爱情短信 VS2008 IDE - Toolbox每个分组的point作用 - 厦门刀客 正则附录表 - 厦门刀客 - 博客园 正则判断表达式 搞笑短信1-dxsoso.cn 如何提高网站PR值 特殊符号大全 CSS技巧集锦 CSS技巧(含色卡) windows 2003 + IIS6 + PHP5.2.5 配置 sqlserver不使用链接服务器,临时跨库跨表查询 大学毕业,俺又做起了站长 现在计算机专业学生怎么这样 - 谈计算机毕业生的浮夸
正则非回溯
厦门刀客 · 2008-03-30 · via 博客园 - 厦门刀客

非回溯匹配
语法:(?>)
涵义:该组匹配后,其匹配的字符不能通过回溯用于后面的表达式的匹配。呵呵,光看这句话肯定搞不懂,我当初为了搞懂这个也花了不少的时间,还是通过实例来说明吧:
"www.csdn.net" 可以通过@"\w+\.(.*)\.\w+"来匹配,却不能通过@"\w+\.(?>.*)\.\w+"来匹配!为什么呢?

原因是正则匹配是贪婪的,匹配时它会尽可能多的匹配最多的结果,所以,上例两个正则式中的.*都会把csdn.net匹配完, 这个时候,第一个表达式在开始匹配时发现\.\w+没得字符给它匹配了,所以它会进行回溯,所谓回溯,就是把.*匹配的结果往回推,回推留出来的字符再用来匹配\.\w+,直到\.\w+匹配成功,整个表达式返回成功的匹配结果。而第二个表达式,因使用的是非回溯匹配,所以,.*匹配完后,不允许通过回溯来匹配\.\w+,所以整个表达式匹配失败。

请注意,回溯匹配是很浪费资源的一种匹配方式,所以,请尽量避免您的正则式要通过回溯来成功匹配,如上例,可以换成@"\w+\.([^\.]+\.)+\w+"+"