免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3547 | 回复: 10
打印 上一主题 下一主题

新手疑问:正则中的/x,/s,/i是否也可以写成\x,\s,\i吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-07 22:10 |只看该作者 |倒序浏览
如题,因为我看书中是可以通用的
不知是不是

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
2 [报告]
发表于 2012-02-08 08:44 |只看该作者
木有试过,lz自己试下就知道鸟

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
3 [报告]
发表于 2012-02-08 09:05 |只看该作者
  1. my $foo = 'YY';

  2. print 123 if $foo =~ m\yy\i;
复制代码
这个是操作符  Regexp Quote-Like Operators

论坛徽章:
0
4 [报告]
发表于 2012-02-08 23:05 |只看该作者
回复 3# yybmsrs


    那么/^\s*$/中的s怎么理解呢?谢谢

论坛徽章:
0
5 [报告]
发表于 2012-02-08 23:14 |只看该作者
回复 4# 鸡鸡哥

[\f\t\n\r] = \s

   

论坛徽章:
0
6 [报告]
发表于 2012-02-08 23:30 |只看该作者
回复 5# xiangshu


例如abcefg\nasdfasdxyz
m{^abc.*xyz}s我理解是匹配的
/^abc.*xyz/s是匹配的
我现在不明白的是\s和/s是不是一回事
因为我测试过if (\yes\i) { print .....}会提示语法错误,而if (/yes/i) { print .....}是正确的,当然if (m\yes\i) { print .....}也是正确的

问题是/^\s*$/这个中的\s表示什么?这里的\应该也不是正则的界定符,界定符是成对出现的,如果不用/的话,就需要用m


不过,如果[\f\t\n\r] = \s是这样的话,那是可以理解了


   

论坛徽章:
1
申猴
日期:2014-04-18 16:29:14
7 [报告]
发表于 2012-02-08 23:45 |只看该作者
一个是修饰符,一个是字符集简写。

论坛徽章:
0
8 [报告]
发表于 2012-02-09 09:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2012-02-09 16:01 |只看该作者
本帖最后由 dx_小绵羊 于 2012-02-09 16:04 编辑

/^\s*$/  表示匹配一个或多个空白

m//,s/// 和 qr// 操作符 的最后一个分隔符后面都接受下列修饰词:
修饰   词含义
/i       忽略字母的大小写(大小写无关)
/s      令 . 匹配换行符并且忽略不建议使用的 $* 变量
/m     令 ^ 和 $ 匹配下一个嵌入的 \n。
/x      忽略(大多数)空白并且允许模式中的注释
/o      只编译模式一次

论坛徽章:
0
10 [报告]
发表于 2012-02-09 22:49 |只看该作者
dx_小绵羊 发表于 2012-02-09 16:01
/^\s*$/  表示匹配一个或多个空白

m//,s/// 和 qr// 操作符 的最后一个分隔符后面都接受下列修饰词:


你还是不明白/^\s*$/为什么匹配一个或者多个空白


这里的\s和你后面说明中的/s到底一样不一样?
这里的\s怎么理解,这里的\s适合/.*/s中的s功能一样吗?


后来终于明白了,原来是自己看书不仔细,其实这里的\s和/s是没有一点关系的,看来是初学,学艺不精,又偏爱钻牛角,抱歉了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP