Chinaunix
标题:
请教,关于PERL的正则表达式
[打印本页]
作者:
slwj
时间:
2014-05-23 21:56
标题:
请教,关于PERL的正则表达式
大家好,在阅读下面文档
http://blog.csdn.net/hiccupzhu/article/details/8930056
,关于PERL的正则表达式,文档提到一个例子:
正则表达式匹配一个给定模式的最早的可能匹配。缺省时,仅匹配或替换正则表达式一次( $a = 'string string2'; $a =~ s/string/ /; 导致 $a = 'string 2')。
,按照我的理解,
$a = 'string string2';
$a =~ s/string/ /;
,其结果应该是' string2'才对,如果结果是'string 2',它应该是从右向左计算,实际是这样吗,多谢!
作者:
b4and5
时间:
2014-05-24 10:26
回复
1#
slwj
$a =~ s/string/ /;
复制代码
的意思是把第一个匹配到的string替换为空,那就只剩下了string2,所以匹配到的是左边的string.
作者:
dacheng58
时间:
2014-05-24 11:25
应该是左边的吧,一般应该是' string2'
至于是不是平台不同?有变量控制?包含了模块?之类,导致默认情况下替换右边的?就不知道了
作者:
slwj
时间:
2014-05-24 12:07
怎么能有一个可以模拟运行PERL的环境?
作者:
b4and5
时间:
2014-05-24 12:54
你用变量捕获就知道他到底匹配到的是什么了
my $test = "string1 string2";
$test =~ /(string\d)/ ;
print $1;
复制代码
作者:
104359176
时间:
2014-05-25 20:35
use 5.010;
my $str = 'string string2';
$str =~ s/string/ /;
say "<$str>";
复制代码
$ perl spp.pl
< string2>
复制代码
作者:
ntwarren
时间:
2014-05-26 10:01
你在这里发这个贴子,还不如自己运行一下省时,我运行的结果是" string2"
作者:
stanley_tam
时间:
2014-05-26 10:31
同意楼上的,我的结果是
$a => [ string2]
复制代码
作者:
slwj
时间:
2014-05-28 20:34
stanley_tam 发表于 2014-05-26 10:31
同意楼上的,我的结果是
多谢了!
顺便问下,可以在Windows下建立一个PERL的运行环境么,多谢!
作者:
stanley_tam
时间:
2014-05-28 20:57
什么意思,在windows上运行per?l
回复
9#
slwj
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2