0

PerlC の複数行コメントを削除する次のコードがあります。

sub StripMultilineComments {
   my $string=shift();
   $string =~ s#/\*.*?\*/##sg; #strip multiline C comments
   return $string;
}

私はPerlと 正規表現についてまったく新しいので、それがどのように機能するのか正確にはわかりません。

4

1 に答える 1

4

まあ、それがうまくいくと言うのはやや誇張されています。例えば、

char* s1 = "/*";
char* s2 = "*/";

になる

char* s1 = "";

// /*
i = 5;
// */

になる

// 

そうは言っても、

  1. 最初の行はサブを宣言し、定義を開始します。
  2. 2 行目は、最初の引数を取得して に入れます$string
  3. 3 行目では、置換演算子を使用して からコメントを削除しています$string
  4. 4 行目は、変換された文字列を返します。

置換演算子が使用するパターンが一致する

  1. A. /_
  2. A. *_
  3. 任意の文字数 ( .*?/s を使用)。
  4. A. *_
  5. A. /_

3 番目のアトムは、non-greediness 修飾子 ( ) により (必要な位置で) 可能な最小文字数に一致し?ます。

于 2013-05-12T15:13:52.980 に答える