免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4721 | 回复: 29
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-04 14:14 |只看该作者 |倒序浏览
在java代码中用 如下方式作为注释:

/*
*
* test
*
*/


我现在有几个文件,想通过正则表达式查找出文件中的注释部分.  自己试了下,怎么都找不出来. 在这里还请哪位朋友帮下忙. 谢谢

论坛徽章:
0
2 [报告]
发表于 2009-06-04 14:22 |只看该作者

  1. while(<>){
  2.         print if(m!/\*!..m!\*/!);
  3. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-06-04 14:35 |只看该作者
谢谢 hitsubunnu

你给的代码很好用.    但是我在windows用UltraEdit工具想批量替换注释.  用这个表达式行不通.  

如果用perl来替换,将如何操作呢?  我的目录下面有很多子目录,有很多文件. 我想将所有注释都替换掉.

论坛徽章:
0
4 [报告]
发表于 2009-06-04 14:52 |只看该作者
s/\/\*.*\n//;
s/\s*\*.*\n//;
s/(.*?)\/\*.*?\*\//$1/;
可以把原来的注释去掉,你试一下。顺便说一下,我是初学者,有些地方难免有错,欢迎指正,呵呵

论坛徽章:
0
5 [报告]
发表于 2009-06-04 15:00 |只看该作者
原帖由 xht314 于 2009-6-4 14:35 发表
谢谢 hitsubunnu

你给的代码很好用.    但是我在windows用UltraEdit工具想批量替换注释.  用这个表达式行不通.  

如果用perl来替换,将如何操作呢?  我的目录下面有很多子目录,有很多文件. 我想将所有注释 ...


  1. grep -r '*' /your/path/ >log.txt
复制代码

论坛徽章:
0
6 [报告]
发表于 2009-06-04 15:07 |只看该作者
/*
* Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/


package com.sun.swingset3;

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

/**
*
* @author Amy Fowler
*/
public class AboutBox extends JPanel {
    private BufferedImage bgImage;

    public AboutBox() {
        try {
            bgImage = ImageIO.read(AboutBox.class.getResource("resources/images/about.jpg"));
        } catch (Exception ex) {
        }




    }

}


这是我某个文件的内容, 我想将文件注释去掉.变成:


package com.sun.swingset3;

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class AboutBox extends JPanel {
    private BufferedImage bgImage;

    public AboutBox() {
        try {
            bgImage = ImageIO.read(AboutBox.class.getResource("resources/images/about.jpg"));
        } catch (Exception ex) {
        }




    }

}








hitsubunnu朋友的    grep -r '*' /your/path/ >log.txt   是将查找的注释输入到log里的.  与我的本意不相符.     现在我应该说清楚了. 而且在我的一个目录下有很多这样的文件. 能不能写个脚本把目录下的所有文件的注释都去掉呢?

论坛徽章:
0
7 [报告]
发表于 2009-06-04 15:29 |只看该作者
我发那个不好用么,你要做那个操作,首先要查找查找当前目录下的所有文件,然后在一个循环中使用这些查找到的文件的文件句柄,再在循环主题使用我发的三行代码就行了。

论坛徽章:
0
8 [报告]
发表于 2009-06-04 15:32 |只看该作者
shihao138096 朋友, 谢谢你,我看到了你写的三个表达式.  不过我也是个新手,我以前自学过PERL.好长时间不用,淡忘了许多.  我不会写了.你能帮我写一个这样的例子吗?

论坛徽章:
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
9 [报告]
发表于 2009-06-04 16:00 |只看该作者
原帖由 xht314 于 2009-6-4 15:07 发表
这是我某个文件的内容, 我想将文件注释去掉.

就用二楼的,把 if 换成 unless 即可。

论坛徽章:
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
10 [报告]
发表于 2009-06-04 16:01 |只看该作者
原帖由 xht314 于 2009-6-4 14:35 发表
谢谢 hitsubunnu

你给的代码很好用.    但是我在windows用UltraEdit工具想批量替换注释.  用这个表达式行不通.  

它用了 Perl 的 ..,在 UE 里面不好使并不奇怪。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP