+ -
当前位置:首页 → 问答吧 → 新人求教--- =~的用法

新人求教--- =~的用法

时间:2010-09-02

来源:互联网

大家好,也许这个是挺小白的问题,但是我还是不明所以,能否教教我? 谢谢。

书中提起= ~的用法时,说此运算符并不进行赋值,它只是取出右边的运算符,并使它对左边的变量进行操作。整个表达式拥有的值与使用$ _时所拥有的值是相同的。
然后给了一个例子,问下面这个代码运行后,$2(用于第二组括号)中的值是什么?
$foo =“Star Wars: The Phantom Men”a;ce
$foo = ~/Star\s ((Wars): The Phantom Menace/
a. 模式匹配后$ 2没有被设置,因为匹配失败。
b. Wars
c. Wars:The Phantom Menace

答案是a。匹配失败是因为star没有使用大写,同时,匹配代码不包含区分大小写字母的修饰符i。由于这个原因,你始终都应该在使用$1、$2等之前测试匹配代码运行是否成功。(如果模式匹配使用了i修饰符,或者star已经变成大写字母,那么选择b就可以得到正确的结果。)

我不是很明白,看了相关的文档也还是迷糊着,请帮我看看吧,谢谢。

作者: justagain   发布时间: 2010-09-02

没有匹配·当然是没赋值给$2啦~

作者: wfnh   发布时间: 2010-09-02

?就是正则匹配啊,lz想问什么?

作者: Mr-Summer   发布时间: 2010-09-02