免费注册 查看新帖 |

Chinaunix

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

ruby 正则没有全局匹配选项吗? 只有i和m [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-12 16:16 |只看该作者 |倒序浏览
page  =~/<script.*?<\/script>/im

这种一次只能匹配出一个script块
象 perl =~/<script.*?<\/script>/gi 可以匹配出所有的script

论坛徽章:
0
2 [报告]
发表于 2011-02-12 16:38 |只看该作者
code.scan(/<script.*?<\/script>/mi).each  { |script|
puts script
}


这个好象死循环了

论坛徽章:
0
3 [报告]
发表于 2011-02-16 22:32 |只看该作者
如果我要在一个字符串中查找子串出现了多少,用什么函数? 类似php的strpos


$htm="<div ><span> hello </span><span >world</span></html>";
$pos=0;
while( (  $pos=strpos($htm,'<span',$pos) ) >-1 ){
    $pos++;
    $index++;

}
print $index;

论坛徽章:
0
4 [报告]
发表于 2011-02-17 08:24 |只看该作者
\G,结合scan和gsub用。

论坛徽章:
0
5 [报告]
发表于 2011-02-17 13:59 |只看该作者
本帖最后由 yakczh 于 2011-02-17 14:01 编辑

有没有示例 
网上搜了一下,只有这个例子
  1. p "-abc-def--ghi-".gsub(/\G-\w+/){[        DISCUZ_CODE_0        ].upcase}
  2. #=> "-ABC-DEF--ghi-"
  3. p "-abc-def--ghi-".scan(/\G-\w+/)
  4. #=> ["-abc", "-def"]
  5. p "-abc-def-ghi-".index(/\G\w+/)        #=> nil
  6. p "-abc-def-ghi-".index(/\G\w+/, 1)        #=> 1
  7. p "-abc-def-ghi-".index(/\G\w+/, 5)        #=> 5
复制代码
p page.scan(/\G\w+/) 返回[]
p page.index(/\G\w+/)  返回nil
还有
p "-abc-def-ghi-".index(/\G\w+/, 1)        #=> 1
p "-abc-def-ghi-".index(/\G\w+/, 5)        #=> 5
这种用法,函数的返回值就是参数,这样的函数有用吗?

论坛徽章:
0
6 [报告]
发表于 2011-02-17 14:13 |只看该作者
楼上,你试试代码不就知道了吗?

论坛徽章:
0
7 [报告]
发表于 2011-02-17 14:26 |只看该作者
p page.scan(/\G\w+/) 返回[]
p page.index(/\G\w+/)  返回nil

这就是试的结果啊

论坛徽章:
0
8 [报告]
发表于 2011-02-17 14:36 |只看该作者


试的结果

论坛徽章:
0
9 [报告]
发表于 2011-02-18 08:58 |只看该作者
没太看明白你的意思,你举个字符串例子来说明你的情况好了。

论坛徽章:
0
10 [报告]
发表于 2011-02-19 13:27 |只看该作者
  1. page=open(filename,'r:gbk').read
  2. findme="<script"
  3. pos=-1
  4. count=0
  5. loop {
  6.    pos=page.index(findme,pos+1)
  7.    
  8.    break unless pos!=nil
  9.    count+=1
  10. }

  11. puts count
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP