繁体   English   中英

正则表达式删除C样式多行注释

[英]Regular expression removing C-style multi-line comments

下面的Perl代码删除了C多行注释:

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

由于我对Perl和正则表达式还很Perl ,所以我不太了解它是如何工作的。

好吧,说这行得通的话有点夸大其词了。 例如,

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

char* s1 = "";

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

// 

那就是

  1. 第一行声明一个并开始定义它。
  2. 第二行抓住的第一个参数,并把它放在$string
  3. 第三行使用替换运算符$string删除注释。
  4. 第四行返回转换后的字符串。

替换运算符使用的模式匹配

  1. A /
  2. A *
  3. 任意数量的字符(带/ s的.*? )。
  4. A *
  5. A /

由于非贪婪修饰符( ? ),第三个原子与它可以(在所需位置)的最少字符数匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM