2011-11-08 43 views
1

我有一堆netbeans上的评论文件,我使用netbeans来替换匹配某个正则表达式模式的字符串,我迷失了它。下面的评论有以下模式。正则表达式来匹配代码注释

import static java.util.Arrays.*; 
/* 178 */  int h = 8; 
/* 179 */  int d = 8; 
/* 180 */  int j = 8; 
/* 181 */  int a = 6; 
/*  */ 

我尝试使用[\\\*\d+\*\/]它消除了意见和里面的数字,但它也去掉了数字的变量赋值后,即它int h = 8;删除8,并删除在进口报关的*

请帮助,告诉我我做错了什么,我只需要删除它的数字和空白的意见。谢谢。

它使用相同的正则表达式模式作为PHP的preg_replace();

回答

1

取出支架。他们创建一个字符类,这意味着任何*/,\,+或数字被删除。

+0

对不起,但我不明白。 -_- – Mob

+0

围绕整个正则表达式的括号。他们不应该在那里。在任何正则表达式指南中查看括号所做的事情。试试这个:http://en.wikipedia.org/wiki/Regular_expression“字符类” - 方括号内的字符列表 - 匹配里面的任何一个字符,在你的情况下是'*','/ '''''''''''''','\ d'。由于所有这些字符都匹配,它们全部被删除。 – Dan

+0

不是那些分隔符?我认为他们是必要的?见http://codepad.org/6XWgE0LR – Mob

1

我认为你应该使用下面的正则表达式:

/\/\*\s*\d*\s*\*\// 

(这是\ d *,而不是\ d +不仅是因为我注意到你的榜样空白评论)

其实,如果我是使用了preg_replace,那么更高的可读性,我就已经使用了以下内容:

$str = preg_replace('%/\*\s*\d*\s*\*/%U', '', $str); 

注意,为的preg_replace()我已经添加在U改性剂,即关闭了“贪婪”。我不知道如何在Netbeans中做到这一点。