Ruby正则表达式

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

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

代码
  1. / Perl | Python /  
<script type="text/javascript">render_code();</script>
从前面的斜线开始的式子的包含了我们要匹配的两个东西,他们用” | ”分割,竖线意味着或,要不就是左边的要不就是右边的,要么就是perl,要么就是python。你可以在式子里面使用圆括号,这就像你用在数学表达式里一样,所以刚才的式子你还可以写成
代码
  1. / P ( erl | ython ) /  
<script type="text/javascript">render_code();</script>
你也可以在式子中指定重复的部分。/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  
<script type="text/javascript">render_code();</script>
一旦你创建了一个式子,不用它就说不过去了。匹配操作符是=~,它可以把String和正则试相匹配,如果在String中发现了式子,=~就返回他的起始位置,否则就返回空。这说明你能用正则作为if和while的条件。例如,下面的代码片段里面写出的包含perl或Python的
代码
  1. String。   
  2. if line =~ / Perl | Python /   
  3. puts "Scripting language mentioned: #{line}"  
  4. end  
<script type="text/javascript">render_code();</script>
部分贝正则表达式匹配的字符串被不同的文本用ruby的字串替换方法替换。
代码
  1. line.sub(/Perl/, 'Ruby') # replace first 'Perl' with 'Ruby'  
  2. line.gsub(/Python/, 'Ruby') # replace every 'Python' with 'Ruby'  
<script type="text/javascript">render_code();</script>
你还可以用ruby的这个方法替换所有出现perl和python的地方:
代码
  1. line.gsub(/Perl|Python/, 'Ruby')  
<script type="text/javascript">render_code();</script>

 

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

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值