Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP.NET > Ruby正则表达式
【标  题】:Ruby正则表达式
【关键字】:Ruby
【来  源】:http://blog.csdn.net/l0979365428/archive/2006/11/21/1401189.aspx

Ruby正则表达式

Your Ad Here

下面是本人翻译的一小段,贴在网上请大家指教

Ruby正则表达式
这个是我昨天看Porgramming ruby的时候看到的一小段,今天把它翻译出来。水平有限,呵呵
正则表达式是用一个字符串匹配特定模式的字符的一种简单的方法。你通过写式子在两个”/”之间创建了一个正则,通过ruby解析,正则表达式就作为一个对象被操作啦。
例如:你要用正则写一个式子,匹配的字符串含有Perl或者Python。

代码
  1. / Perl | Python /  

从前面的斜线开始的式子的包含了我们要匹配的两个东西,他们用” | ”分割,竖线意味着或,要不就是左边的要不就是右边的,要么就是perl,要么就是python。你可以在式子里面使用圆括号,这就像你用在数学表达式里一样,所以刚才的式子你还可以写成
代码
  1. / P ( erl | ython ) /  

你也可以在式子中指定重复的部分。/ad+c/匹配一个包含一个a后跟着一个或多个b,再跟着一个c的字串。把加号改成乘号,/ab*c/这个式子匹配一个a,0或多个b,一个c.
你还可以匹配式子中的一组字符。一些公共的实例就像\s是字符类的,它匹配一个空格字符(空格,tab,新行);\d,匹配任意数,\w,匹配任意字母,一个点(.)匹配任意字符。
我们可以把它们放在一起制造出许多有用的正则表达式。
代码
  1. /\d\d:\d\d:\d\d/        # a time such as 12:34:56  
  2. /Perl.*Python/        # Perl, zero or more other chars, then Python   
  3. /Perl Python/         # Perl, a space, and Python   
  4. /Perl *Python/        # Perl, zero or more spaces, and Python   
  5. /Perl +Python/        # Perl, one or more spaces, and Python   
  6. /Perl\s+Python/       # Perl, whitespace characters, then Python   
  7. /Ruby (Perl|Python)/   # Ruby, a space, and either Perl or Python  

一旦你创建了一个式子,不用它就说不过去了。匹配操作符是=~,它可以把String和正则试相匹配,如果在String中发现了式子,=~就返回他的起始位置,否则就返回空。这说明你能用正则作为if和while的条件。例如,下面的代码片段里面写出的包含perl或Python的
代码
  1. String。   
  2. if line =~ / Perl | Python /   
  3. puts "Scripting language mentioned: #{line}"  
  4. end  

部分贝正则表达式匹配的字符串被不同的文本用ruby的字串替换方法替换。
代码
  1. line.sub(/Perl/, 'Ruby') # replace first 'Perl' with 'Ruby'  
  2. line.gsub(/Python/, 'Ruby') # replace every 'Python' with 'Ruby'  

你还可以用ruby的这个方法替换所有出现perl和python的地方:
代码
  1. line.gsub(/Perl|Python/, 'Ruby')  

 

就到这啦,以后有时间会陆续的发一些出来的。

 
RSS聚合网页内容:【上一篇】
可输入的下拉框:【下一篇】
【相关文章】
  • 浅谈Ruby on Rails - Rails 的 MVC
  • 浅谈Ruby on Rails - Rails 在服务器上的部署
  • Ruby资源
  • 第一次写ruby脚本,做个标记
  • Ruby 全局变量
  • 日本人的Ruby
  • MagicLinux2.0下配置Ruby on Rails开发环境
  • [Ruby乐趣]批量删除svn遗留文件
  • 新版YARV(基于Ruby 1.9.0 v2006-11-01)编译/安装/测试手记
  • [Ruby乐趣]批量插入文本串
  • 【随机文章】
  • 在CTreeCtrl中枚举系统中的所有窗口
  • 3DS MAX 障眼法-伪放大镜
  • 贴个购物车的类,只用了一个Session
  • 为RCP程序增加关闭提示和关闭到系统托盘
  • http://www.cnpaf.net/Class/hack/index.html
  • 值得回忆的本科四年学习(13-14)
  • 病毒名称 黑洞2004(Win32.Hack.Singu.o)
  • 学习MySQL多表操作和备份处理
  • 将ASP.NET用户控件转化为自定义控件
  • 比较不同机器上的文件系统
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.