正则的表达式主导和文本式主导 最近在看《精通正则表达式》 里面讲到了表达式主导和文本式主导还拿了个例子to(nite|knight|night)来匹配文本tonight 表达式主导和文本式主导的处理 愣是没看明白大伙给偶用通俗的话给偶讲讲呗 脑袋不开窍 虚心求教了... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道你看看的是不是这个文章,觉得说的够清楚了http://hi.baidu.com/sunsee/item/d548cb8485ad2dcdee083d3d to(nite|knight|night)匹配tonite,toknight,tonight这三个单词 也就是说字符串中比如t被正则to(nite|knight|night)重复测试了3次?那文本式主导呢?我就是想看看大伙的理解 我看书看的头昏眼花了。 NFA是“表达式主导”,DFA是“文本主导”目标文本中的每一个字符在NFA中可能会被检查多次,但在DFA中最多只会被检查一次。传统型NFA支持忽略优先量词(*?、+?、??、{num,num}?)DFA不支持捕获型括号(capturing parentheses)和回溯(backreference) NFA是“表达式主导”目标字符串中night被正则to(nite|knight|night)重复测试了3次,to 之后nite, knight, night各一次DFA是“文本主导”目标字符串tonight被正则to(nite|knight|night)扫描了一次,to 之后扫描n,knight抛弃,再之后扫描i,nite和night都保留,再之后扫描g,则nite抛弃,一直扫描到最后的t,发现匹配完成了,则报告成功 http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html#introduction很有用 我就是自己学会的 。。 你可以作如下测试:将正则表达式"regex|regex not"应用到字符串“regex not”。如果匹配的结果是regex,则引擎是正则导向(regex-directed)。如果结果是regex not,则是文本导向(text-directed)。因为正则导向的引擎是“猴急”的,它会很急切的进行表功,报告它找到的第一个匹配 。 sevelet是微软提出来的吗? C#WinForm程序中已知文件的短文件名路径如何将其还原成长文件名路径? 关于QQ登录相关问题 请教一个问题 弱弱的问一个关于 namespace 的问题 答对者全分奉送!!!如何将服务器端的图形文件流(Response.ContentType = "image/jpeg")回传到客户端的Image NET2003混淆器如何使用? 关于线程运行时的状态???在线等,顶者有分哈 使用OracleCommand执行带参数的查询语句 .NET 的最大优点是什么 怎么初始化数组急求高手解答,急急急急急急急急 求助 数据封包处理的问题
匹配tonite,toknight,tonight这三个单词
目标文本中的每一个字符在NFA中可能会被检查多次,但在DFA中最多只会被检查一次。
传统型NFA支持忽略优先量词(*?、+?、??、{num,num}?)
DFA不支持捕获型括号(capturing parentheses)和回溯(backreference)
目标字符串中night被正则to(nite|knight|night)重复测试了3次,to 之后nite, knight, night各一次DFA是“文本主导”
目标字符串tonight被正则to(nite|knight|night)扫描了一次,to 之后扫描n,knight抛弃,再之后扫描i,nite和night都保留,再之后扫描g,则nite抛弃,一直扫描到最后的t,发现匹配完成了,则报告成功
很有用 我就是自己学会的 。。