11 12
发新话题
打印

[其他语言] 一行看不懂的代码,大家帮忙看看

一行看不懂的代码,大家帮忙看看

perl程序:
复制内容到剪贴板
代码:
if ($a =~ /Fail|Error/){.....}
这个我懂。
复制内容到剪贴板
代码:
if ($a =~ /Fail|Error/oi){.....}
这个我就不懂了,i 是不区分大小写,o是什么意思????

TOP

来自cnangel的回答
----------------------------------

/o 仅仅一次计算表达式的值

本站精华区有我写的文章,看看就知道了;
if ($a =~ /Fail|Error/oi)
根本就是乱用正则表达式
开源,人人为我,我为人人!

TOP

/o 仅仅一次计算表达式的值

本站精华区有我写的文章,看看就知道了;
if ($a =~ /Fail|Error/oi)
根本就是乱用正则表达式
print pack( 'H*', '436e616e67656c');
http://renark.huhoo.net/crypt.cgi

TOP

谢谢回贴,我看看去。
看来之前写程序那人还不如我呢,我不会用,但也不乱用。

TOP

正则表达式的英文怎么说,谁知道?是不是叫 regular expression?
我急需一个中英文对照表,要不以后不好跟大家交流。

TOP

正则表达式==regular expression
开源,人人为我,我为人人!

TOP

看了精华文章,还是不太懂/o的用法,版主能不能给一个简短的例子

多谢!

TOP

/o功能一般用不上
匹配路径时候
引用:
                $url =~ s/^http:\/\///isg;
                ($host, undef) = split(/\//, $url);
                $path = $url;
                $path =~ s/^$host//iso;
计算$host的值保证.不代表除换行符外的任意字符
print pack( 'H*', '436e616e67656c');
http://renark.huhoo.net/crypt.cgi

TOP

是不是说
复制内容到剪贴板
代码:
$host='www.linuxmine.com';
$path="wwwwlinuxmine.com/a/b";
$path =~ s/^$host//iso;
#path should be 'wwwwlinuxmine.com/a/b'.因为.不能匹配w

TOP

当$host变化的时候,只匹配$host一次
又比如:
引用:
my $result;
my $var = 1;
my $line = <STDIN>;
while ($var < 10) {
    $result = $line =~ /$var/o;
    print "ok" if ($result);
    print "ok\n";
    $line = <STDIN>;
    $var++;
}
虽然$var++但是只匹配/1/,也就是说只执行一次
print pack( 'H*', '436e616e67656c');
http://renark.huhoo.net/crypt.cgi

TOP

 11 12
发新话题