免费注册 查看新帖 |

Chinaunix

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

对java代码注释的删除 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-18 20:51 |只看该作者 |倒序浏览
代码注释删除,请高手帮忙

例如:ceshi.java

/**
* [email={@.en]{@.en[/email] Feature is father class of all the feature implementations, every feature
* hide, destroy.} [email={@.ja]{@.ja[/email] }
*
* [email={@.en]{@.en[/email] Feature is father class of all the feature implementations, every feature
* hide, destroy.} [email={@.ja]{@.ja[/email] skdjflsjdflkdjslfsjdkjflskdjfksjdlfjsldkjflksjdlkjflkjsldjflksjdsdf
* sdfdsfsdfsdfsdfsd }
*
* [email=*{@.ja]{@.ja[/email] jslkdjflkdsjlkfjldskjfkjdslfkjlsdkjflkdsjlkfjdslkjflkdsjlfkjsdlkfjslkdjflksjdlkfjsldkjfdf
* sdfsdfdsfsdfsdfsddfsdfsfdsdfsdfsdddddddddddddddddddddddddddddddddddddddd
* sdfdsfsf  }
*
* [email={@.en]{@.en[/email] Feature is father }
*
        public void hide(Hashtable paraTable) {
                currentFM.hideFeature(this, paraTable);
        }
}

规则为:1. 删除掉 [email={@.ja]{@.ja[/email] 与 紧邻下一个 } 和 之间的内容,包括这之间的描述。
          2. 删除掉 [email={@.en]{@.en[/email] 与 紧邻下一个 } ,保留这之间的英文内容。

希望得到的运行结果为:

/**
* Feature is father class of all the feature implementations, every feature
* hide, destroy.
*
* [email={@Feature]Feature[/email] is father class of all the feature implementations, every feature
* hide, destroy.
*
* [email={@Feature]Feature[/email] is father
*
        public void hide(Hashtable paraTable) {
                currentFM.hideFeature(this, paraTable);
        }
}


先行谢过拉:)

论坛徽章:
0
2 [报告]
发表于 2009-06-18 21:01 |只看该作者

回复 #1 way030724 的帖子

带 地址符号 '@' 问题就出错了


下面是重发的问题:

代码注释删除,请高手帮忙

例如:ceshi.java

/**
* {en Feature is father class of all the feature implementations, every fea
* hide, destroy.} {ja }
*
* {en Feature is father class of all the feature implementations, every feature
* hide, destroy.} {ja skdjflsjdflkdjslfsjdkjflskdjfksjdlfjsldkjflksjdlkjflkjsldjflksjdsdf
* sdfdsfsdfsdfsdfsd }
*
* {ja jslkdjflkdsjlkfjldskjfkjdslfkjlsdkjflkdsjlkfjdslkjflkdsjlfkjsdlkfjslkdjflksjdlkfjsldkjfdf
* sdfsdfdsfsdfsdfsddfsdfsfdsdfsdfsdddddddddddddddddddddddddddddddddddddddd
* sdfdsfsf  }
*
* {en Feature is father }
*
        public void hide(Hashtable paraTable) {
                currentFM.hideFeature(this, paraTable);
        }
}

规则为:1. 删除掉 {ja 与 紧邻下一个 } 和 之间的内容,包括这之间的描述。
          2. 删除掉 {en 与 紧邻下一个 } ,保留这之间的英文内容。

希望得到的运行结果为:

/**
* Feature is father class of all the feature implementations, every feature
* hide, destroy.
*
* Feature is father class of all the feature implementations, every feature
* hide, destroy.
*
* Feature is father
*
        public void hide(Hashtable paraTable) {
                currentFM.hideFeature(this, paraTable);
        }
}


先行谢过拉:)

论坛徽章:
0
3 [报告]
发表于 2009-06-18 21:13 |只看该作者
你这注释怎么没有结束的地方?

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

回复 #3 lululau 的帖子

不好意思啊,我不是编写java的,自己写了点代码,呵呵

/**
* {en Feature is father class of all the feature implementations, every fea
* hide, destroy.} {ja }
*
* {en Feature is father class of all the feature implementations, every feature
* hide, destroy.} {ja skdjflsjdflkdjslfsjdkjflskdjfksjdlfjsldkjflksjdlkjflkjsldjflksjdsdf
* sdfdsfsdfsdfsdfsd }
*
* {ja jslkdjflkdsjlkfjldskjfkjdslfkjlsdkjflkdsjlkfjdslkjflkdsjlfkjsdlkfjslkdjflksjdlkfjsldkjfdf
* sdfsdfdsfsdfsdfsddfsdfsfdsdfsdfsdddddddddddddddddddddddddddddddddddddd dd
* sdfdsfsf  }
*
* {en Feature is father }
*
**/

        public void hide(Hashtable paraTable) {
                currentFM.hideFeature(this, paraTable);
        }
}

论坛徽章:
0
5 [报告]
发表于 2009-06-18 21:37 |只看该作者

  1. liuxiang@MacBookPro: ~ $ echo '
  2. /**
  3. * {en Feature is father class of all the feature implementations, every fea
  4. * hide, destroy.} {ja }
  5. *
  6. * {en Feature is father class of all the feature implementations, every feature
  7. * hide, destroy.} {ja skdjflsjdflkdjslfsjdkjflskdjfksjdlfjsldkjflksjdlkjflkjsldjflksjdsdf
  8. * sdfdsfsdfsdfsdfsd }
  9. *
  10. * {ja jslkdjflkdsjlkfjldskjfkjdslfkjlsdkjflkdsjlkfjdslkjflkdsjlfkjsdlkfjslkdjflksjdlkfjsldkjfdf
  11. * sdfsdfdsfsdfsdfsddfsdfsfdsdfsdfsdddddddddddddddddddddddddddddddddddddddd
  12. * sdfdsfsf  }
  13. *
  14. * {en Feature is father }
  15. *
  16.         public void hide(Hashtable paraTable) {
  17.                 currentFM.hideFeature(this, paraTable);
  18.         }
  19. }' | perl -e '
  20. > while(<>){
  21. > $text .= $_;
  22. > }
  23. > $text =~ s/\{ja.*?\}//gs;
  24. > $text =~ s/\{en(.*?)\}/$1/gs;
  25. > print $text;'

复制代码


试试这个,可能会有多余空行

论坛徽章:
0
6 [报告]
发表于 2009-06-18 21:57 |只看该作者
原帖由 lululau 于 2009-6-18 21:37 发表

liuxiang@MacBookPro: ~ $ echo '
/**
* {en Feature is father class of all the feature implementations, every fea
* hide, destroy.} {ja }
*
* {en Feature is father class of all the feature i ...


比预想的只多了一行,就像{ja jdskjfkds} 如果跨行的话,只保留一行。对吧?
下面是执行的结果,非常感谢

> print $text;'
/**
*  Feature is father class of all the feature implementations, every fea
* hide, destroy.
*
*  Feature is father class of all the feature implementations, every feature
* hide, destroy.
*
*
*
*  Feature is father
*
        public void hide(Hashtable paraTable) {
                currentFM.hideFeature(this, paraTable);
        }
}

论坛徽章:
0
7 [报告]
发表于 2009-06-18 22:10 |只看该作者
不知道你的代码格式规范不?
如果你能保证所有的只有一个*号的注释行都顶在行首的话:


  1. perl -e '
  2. > while(<>){
  3. > $text .= $_;
  4. > }
  5. > $text =~ s/\{ja.*?\}//gs;
  6. > $text =~ s/\{en(.*?)\}/$1/gs;
  7. > $text =~ s/(\*\s*\n)+/$1/gs;
  8. > print $text;'
复制代码

论坛徽章:
0
8 [报告]
发表于 2009-06-18 22:11 |只看该作者
阿,不好意思,一般来说,对于正常的Java代码,我的这个假设根本不成立阿

论坛徽章:
0
9 [报告]
发表于 2009-06-18 22:13 |只看该作者

  1. perl -e '
  2. > while(<>){
  3. > $text .= $_;
  4. > }
  5. > $text =~ s/\{ja.*?\}//gs;
  6. > $text =~ s/\{en(.*?)\}/$1/gs;
  7. > $text =~ s/([ \t]*\*\s*\n)+/$1/gs;
  8. > print $text;'
复制代码


应该没问题了

论坛徽章:
0
10 [报告]
发表于 2009-06-18 22:32 |只看该作者

回复 #9 lululau 的帖子

标准的*号 前面还有个空格的吧? 我在试脚本,有问题了我再给你留言吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP