新手:正则表达式请教

新手:正则表达式请教

源码如下:

$code="count++; /*kjfkasjfkasjdf */";
$code=~ s|\/\*.*\*\/||g;

print $code;

执行结果为:
count++;

请问正则表达式中:\/\*.*\*\/ 如何解释呢;

请教高手详细解释下;万分感谢;
/*任意*/
什么意思,能说得详细点吗,比如:
\/\*.*\*\/
里面的每个符号表示什么?
\/\*.*\*\/

\/\*匹配/*
.*匹配任意
\*\/匹配*/
其实可以简化一点
$code =~ s|/\*.*\*/||g;
因为使用了分隔符“|”来替代原来的“/”, 所以s|||里边的“/”可以不用转义。


QUOTE:
$code="count++; /*kjfkasjfkasjdf */";
$code=~ s|\/\*.*\*\/||g;

详细解释如下:

先说框架 :s|||g;    一般来说使用///作分界符。不过,也可以在特殊场合使用其它配对的符号,例如s###,s@@@,s{}{}.
框架之后的g表示全局替换,global.

再切入核心部分。
\/\*.*\*\/
\/ :普通字符/
\* :普通字符*
.* :任意字符,任意次数。此处为贪婪模式。
\* :普通字符*
\/ :普通字符/

综上,这是用来全局替换C语言风格代码中的注释/*……*/的。
但是,如果regex中的.*不支持换行符,那么,上述的正则式只能替换单行中的所有/*..*/注释,而不能替换

/*...
...
...*/

风格的注释。
G00GLE说得很对,正是为了避免歧义而采用了|||,所以也就没有必要再使用\/进行转义了。
多谢大家,明白了,^_^