`
edwardpro
  • 浏览: 310574 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ruby的正则循环查找

阅读更多
写了一个从html中提取图片的helper方法,不过不知道怎么让正则一个个匹配下去,似乎String.scan不能达到我的要求,所以还是用了递归方法,代码如下:

  def get_only_pic(cbody,result="")
    results=/<img (.*) src=\"(.*)\" (.*)\/>/i.match(cbody)
   
    if results == nil
      #if no match, return it.
      return result
    else
      result+="<img src=\"#{results[2]}\" border=0 /><br/>"
      #把前一次的匹配位置替换掉,然后继续查找下一个
      get_only_pic(cbody.sub(/<img (.*) src=\"(.*)\" (.*)\/>/i,""),result)
    end
  end

不是一个好方法,谁知道应该怎么写的话告诉我吧:)
分享到:
评论

相关推荐

    精通正则表达式~~~

    Ruby测试... 238 Python测试... 238 Tcl测试... 239 常见优化措施... 240 有得必有失... 240 优化各有不同... 241 正则表达式的应用原理... 241 应用之前的优化措施... 242 通过传动装置进行优化... 246 ...

    正则表达式以时间的格式替换字符串,输出今天的日期.rb

    在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在这个“正则表达式以时间的格式替换字符串,输出今天的日期.rb”的项目中,我们主要探讨如何利用正则表达式...

    ruby中文手册 chm

    用户指南通常会从基础开始介绍Ruby,包括变量、数据类型、控制结构(如if语句、循环)、函数、类与对象、模块、继承等。此外,还会涉及异常处理、文件操作、正则表达式和字符串处理等内容,这些都是Ruby编程的基础...

    Programming-Ruby-1.9源代码

    - 集合操作如查找、排序、合并、过滤等,源代码会提供各种实例,帮助理解Ruby的数组和哈希操作的强大。 6. **文件和I/O** - 文件读写操作,如`File.open`,以及流处理,源代码将展示如何进行文件操作。 - 标准...

    ruby中文 文档

    7. **正则表达式(Regexp)**:Ruby内置了强大的正则表达式支持,用于文本匹配和处理。 8. **文件和I/O操作**:学习如何读写文件,以及进行标准输入输出和流处理。 9. **线程和并发**:Ruby支持多线程,文档会解释...

    Ruby编程语言

     5.2循环127  5.3迭代器和可枚举对象130  5.4代码块140  5.5改变控制流146  5.6异常和异常处理154  5.7BEGIN和END165  5.8线程、纤程和连续体166  第6章方法、PROC、LAMBDA和闭包175  6.1定义简单方法177 ...

    ruby中文文档.chm

    6. **正则表达式**:掌握Ruby中的正则表达式,用于文本匹配和处理。 7. **模块与命名空间**:理解模块如何帮助组织代码和避免命名冲突。 8. **元编程**:探索Ruby的send方法、class_eval、instance_eval等元编程技巧...

    Ruby语言入门教程(附源码文件)

    - 循环:`for`、`while`、`until`,以及更灵活的`each`迭代器。 - 控制流程:`break`、`next`、`redo`和`retry`。 3. **函数和方法** Ruby中的函数定义使用`def`关键字,可以有或无返回值。方法可以接受参数,...

    ruby_1_9_3_stdlib_rdocs.gz

    核心库是 Ruby 语言的基础,包括基本的数据类型(如字符串、数组、哈希)、控制结构(如循环、条件语句)以及对象模型等。扩展库则是一系列附加的功能,如文件系统操作、进程管理、XML 解析等,它们增强了 Ruby 的...

    Ruby语言入门教程

    - **字符串**:Ruby的字符串支持各种操作,包括拼接、分割、查找等。 - **正则表达式**:Ruby内置了强大的正则表达式引擎,可用于文本匹配和搜索替换等场景。 - **迭代器、代码块、闭包**:Ruby提供了丰富的迭代器和...

    Ruby实战教程从基础到项目开发.docx

    Ruby内置了强大的正则表达式支持,可用于字符串匹配和模式查找。 ```ruby # 使用正则表达式验证邮箱 email = "john@example.com" if email =~ /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/ puts "Valid email address" ...

    Ruby语言中文教程

    "E4.4-1.rb"和"E4.5-1.rb"可能涉及到Ruby的字符串操作和正则表达式,这是处理文本数据时非常重要的工具。 在Ruby中,类和对象是其核心概念,"E3.12-1.rb"可能讲解了如何定义类、创建对象,以及理解类和对象之间的...

    Ruby程序设计(简洁清新的教程)

    Ruby提供了多种循环控制结构: - `loop`:无限循环,常与`break`一起使用。 - `while`:条件循环。 - `until`:条件循环,与`while`相反。 - `for...in`:遍历集合。 - `break`, `redo`, `next`:用于控制循环流程...

    Ruby.Phrasebook

    《Ruby Phrasebook》是由Wesley Chun编写的英文版编程指南,主要针对Ruby语言,旨在帮助程序员快速查找和理解各种常见的Ruby代码模式和实践。这本书是2008年9月出版的,对于Ruby初学者和有经验的开发者来说,都是一...

    Ruby入门教程

    哈希表通过键值对的形式存储数据,提供快速的查找功能。 **4.3 Number** 数字类型包括整数和浮点数等。 **4.4 String** 字符串是字符的有序集合。 **4.5 Range** 范围类型用于表示两个数字之间的连续区间。 *...

    Ruby学习思维导图.pdf

    - **哈希**:一种键值对的数据结构,用于快速查找。 - **范围**:表示一个数值序列。 - **布尔值**:只能是 `true` 或 `false` 的值。 - **nil**:表示没有值或者空值。 **1.3 运算符** - **算术运算符**:如加、...

    ls_intro_to_ruby

    另外,Ruby还提供正则表达式(Regexp)类,方便进行文本模式匹配。 **文件与I/O** Ruby提供了丰富的文件操作和输入/输出(I/O)函数,包括读写文件、处理标准输入输出和重定向等。`File`和`IO`类是进行这些操作的...

Global site tag (gtag.js) - Google Analytics