免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: xht314
打印 上一主题 下一主题

正则表达式求解!!! [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-06-05 14:36 |只看该作者

回复 #19 ILoveMK 的帖子

收藏了,谢谢ILoveMK 分享

[ 本帖最后由 shihao138096 于 2009-6-5 14:37 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2009-06-05 15:07 |只看该作者
不行啊! 问题更严重了!      /**  没有被去掉!

论坛徽章:
0
23 [报告]
发表于 2009-06-05 15:21 |只看该作者
while(<FILEHANDLER>){
s/^\/\*.*\n//;
s/^\s*\*.*\n//;
s/(.*?)\/\*.*?\*\//$1/;

    push @file_content,$_;
   }

替换成

   while(<FILEHANDLER>){

   $_ = print if(m!/\*!..m!\*/!);
    push @file_content,$_;
   }


把注释部分替换成N个1了, 我知道是因为print反回结果造成的. 有没有办法解决呢??     用一个正则表达式不能匹配吗???    很着急呀.

论坛徽章:
0
24 [报告]
发表于 2009-06-05 15:51 |只看该作者
原帖由 xht314 于 2009-6-5 15:21 发表
while(){
s/^\/\*.*\n//;
s/^\s*\*.*\n//;
s/(.*?)\/\*.*?\*\//$1/;

    push @file_content,$_;
   }

替换成

   while(){

   $_ = print if(m!/\*!..m!\*/!);
    push @file_content,$_;
...

不是都给你写好了吗

  1. grep -l -r "*" /your/path/ |xargs perl -pi.bk -e "$_ = '' if(m!/\*!..m!\*/!);"
复制代码

论坛徽章:
0
25 [报告]
发表于 2009-06-05 16:30 |只看该作者

回复 #23 xht314 的帖子

不好意思 ,刚出去了一下,你说的那个问题主要是因为在你的/**前面有空格:现在将那三个正则表达式改为如下形式:
s/^\s*\/\*.*\n//;
s/^\s*\*.*\n//;
s/(.*?)\/\*.*?\*\//$1/;

论坛徽章:
0
26 [报告]
发表于 2009-06-05 16:37 |只看该作者

回复 #24 hitsubunnu 的帖子

hitsubunnu ,能不能解释一下 m!/\*!..m!\*/!呀,我初学者 ,谢谢了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
27 [报告]
发表于 2009-06-05 18:23 |只看该作者
原帖由 shihao138096 于 2009-6-5 16:37 发表
hitsubunnu ,能不能解释一下 m!/\*!..m!\*/!呀,我初学者 ,谢谢了

这个你看 perlop 中对 m// 和 .. 的描述就清楚了。另外,这个不是正则表达式,而是一个 .. 表达式。

论坛徽章:
0
28 [报告]
发表于 2009-06-06 23:05 |只看该作者

回复 #27 MMMIX 的帖子

谢谢了,就说呢,因为已经学习了一段时间perl了,可是就没看到(在基础教程中)这样的写法。太感谢了

论坛徽章:
0
29 [报告]
发表于 2009-06-06 23:48 |只看该作者
如果是注释就跳过
把要的内容另存为一个文件

论坛徽章:
0
30 [报告]
发表于 2009-06-07 16:40 |只看该作者

回复 #29 小公猫 的帖子

你说的也未尝不是一个方法,但是好像有点绕了,我感觉
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP