2011-11-08 24 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; 
/*  */ 

Iは[\\\*\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のために()私は「貪欲」をオフにU修飾子を、追加したことを

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

注:私は、次のように使用しました高い可読性のために、その後、にpreg_replaceを使用します。私はNetbeansでこれを行う方法がわかりません。