新人求教--- =~的用法
时间: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就可以得到正确的结果。)
我不是很明白,看了相关的文档也还是迷糊着,请帮我看看吧,谢谢。
书中提起= ~的用法时,说此运算符并不进行赋值,它只是取出右边的运算符,并使它对左边的变量进行操作。整个表达式拥有的值与使用$ _时所拥有的值是相同的。
然后给了一个例子,问下面这个代码运行后,$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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28