+ -
当前位置:首页 → 问答吧 → 查找与替换导致程序死掉

查找与替换导致程序死掉

时间:2011-03-30

来源:互联网

最近买了一本<word实战技巧精粹>,在实战练习时经常导致程序死掉,不知初学者是否有同感.
1. @好像不能用于代码的结尾.  例:  ^13^32@     ==>   ^13  , 每次只能替换掉一个空格;   但 ^13^32{1,}    ==>   ^13    , 能替换掉连续的空格.
2. [!  ]{1,} 好像不能用于代码的中间.  例: " 实战战战战技巧 ",    实[!a]{1,}技 , ...found no items... ;   实[!a]@技 , 能查找出 "实战战战战技" .
3. [!  ]@用于代码中间需注意,
^13[!  ]@?     可能导致程序死掉.    例: ^13[!0-9]@、,本意是想查找段首的 一、 二、 十一、十二、等,  
*[!  ]@*^32  , 当*[!  ]@*能正确匹配目标内容,但目标内容后无紧相连的空格,可能导致程序死掉.     例: ^13第[!a-z]@章^32  ,本意是想查找段首的 第一章(空格)    第十一章(空格)等, 要是存在某一章后无空格,死了.   
谁能提供全面点注意事项?
谢谢!

作者: hdfddyy   发布时间: 2011-03-30

这个问题很重要,核心是@和{1,}的区别。
有点这样的趋势:@通配时最小化,而{1,}通配时则取最大化。故第一点会出现楼主所述状况,第二点中,{1,}最大化实际就是{1,7},将后面的包括^p都包含了,所以找不到。
若直接换成{1,4}就可以找到了。

不知道这样解释对不对,请高手指教。
下班了,逃跑!

[ 本帖最后由 sqhsqhli 于 2011-3-31 17:46 编辑 ]

作者: sqhsqhli   发布时间: 2011-03-31