
正则表达式工作中的问题和经验.doc
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
最后一页预览完了!喜欢就下载吧,查找使用更方便
10 文币 0人已下载
下载 | 加入VIP,免费下载 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正则表达式工作中的问题和经验.doc
- 资源描述:
-
正则表达式工作中的问题和经验1.使用正则表达式判断交互输入;问题:在输入的值里, 可以简单的判断其范围 ,但有些时候还需要判断类型,避免因为输入错误造成脚本不能执行,或错误执行等问题;示例:判断一个以0 数字开头的数字组合:if $1 = (1-90-9)*$ & $1 -le $max then.else.fi看上去这个判断没有什么问题(事实上它的确可以实现 ),但在应用的时候发现“ 在正常判断数字的时候没有问题 ,但在判断特殊字符的时候却出现问题 “.这会带来一个比较严重的安全问题,如果我将这个代码写的很冗长 ,很难避免里面那个调用不会被利用.问题就处在“(1-90-9)*$“上,在正则表达式里“*“代表的是 “匹配 0 次或多次“.说明即使不输入数字,只要不是字母,其它的输入也可能被调用.如果简单的将“*“改为“+“ 则会造成不能输入个位数字的请款.解决:解决的办法也很简单, 将“ (1-90-9)*$“改为“(1-9)1(0-9)*$“即可.这样就完全匹配了输入的类型.注:zmt1982 兄说的对,其实只需要“1-90-9*$ “(以 1-9 数字开头,0-9 数字出现 0 次或多次为结尾) 就可以了 俺是想的太多了.欢迎大家指正经验:别拿 shell 不当干粮.
