如何在Ruby中使用字符串方法

Python016

如何在Ruby中使用字符串方法,第1张

正如你所知道的,ruby字符被称为一流的对象,它使用了大量的查询和操作方法。一个最基本的字符串操作是把一个字符串分割成多个子字符串。如果你有一个字符串,如“foo, bar, baz”而你希望的是这样三个字符串“foo”,“bar”,“baz”。那么字符串类的split方法就可以帮助你。 “split”的基本用法 split方法的最基本用法分裂一个由单独字符或字符的静态序列组成的字符串。如果split的第一个变量是一个字符串,那么这个字符串中字符就会被当作一个字符串分隔符使用。但是在逗号分隔的数据中,逗号用来分隔数据,这里的每个字符串成分都被用来分隔数据。 #!/usr/bin/env rubystr =foo,bar,bazputsstr. split(,)$ ./1.rbfoobarbaz通过正则表达式来增加灵活性 当然,还有一些更容易的方法可以分隔字符串。正则表达式可以为split方法增加灵活性。这里再次拿“foo, bar, baz”。间隔在第一个逗号之后而不是第二个逗号。如果该字符串“,”被当成是分隔符,那么在“baz”字符串的开始处仍然会存在间隔。如果使用“,”字符串,它只与第一个逗号匹配,因为第二个逗号后面没有间隔。其作用还是有限的。 解决这个问题的办法是把正则表达式作为定界符的自变量,而不是使用字符串。正则表达式不仅可以匹配静态序列的字符,对字符的不定量和可选字符都同样起作用。 编写正则表达式 为你的分隔符编写一个正则表达式,第一步就是描述清楚什么是分隔符。在这种情况下,一个逗号后面可能存在一个或多个空格是合理的。这一正则表达式库中存在两个要素:逗号和可选的间隔。间隔会使用* (星号)量词,它表示的意思是“零或更多”。任何在它之前的要素都会匹配零次或若干次。例如,正则表达式/ a * /将匹配序列零或更多“a”字符。 #!/usr/bin/env rubystr =foo, bar,bazputsstr. split( /, */ )$ ./2.rbfoobarbaz限制splits的数量 想象一个逗号分隔了这样的字符串:“10,20,30,this is an arbitary string”。其格式是三个数字后面跟了一句评论。此评论可以包含任意的文本,包括带有逗号的文本。要防止split分离文本这个文本,我们可以设置一个最大分裂列数。请注意,只有在任意文本的评论字符串处在表格最后一列时才管用。 为了限制splits的数量,字符串中数域的数量要作为split方法的第二个变量来发送。 #!/usr/bin/env rubystr =10,20,30,ten, twenty and thirtyputsstr. split( /, */, 4 )$ ./3.rb102030en, twentyandthirty了解其局限性 分裂法有一些局限性。以字符串“10,20, ‘bob, eve and mallory’,30”为例。预期字符是两个数字,后跟一个引证串(可能包含逗号),然后是另一个数字。split不能正确分隔这个字符串的域。为了做到正确分隔,需要保持字符串扫描器处于开启状态,这样一来它就会记得它有没有在引证串内部。反之,如果扫描仪不在启动状态,就不能解决这样的问题。

Ruby 是开源的,在Web 上免费提供,但需要一个许可证。 Ruby 是一种通用的、解释的编程语言。 Ruby 是一种真正的面向对象编程语言。 Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。 Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。 Ruby 可用于开发的 Internet 和 Intranet 应用程序。 Ruby 可以安装在 Windows 和 POSIX 环境中。 Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。 Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。 Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。

这个是将一串字符串转化成数组的方法

(1) 在默认无参传入的时候 ,是以空格为间隔 ,获得数组

 pry(main)> " now's the time".split

 => ["now's", "the", "time"]

(2) 如果接受一个字符参数 ,那么会按照这个字符参数进行分割变成数组

pry(main)> "mellow yellow".split("ello")

 => ["m", "w y", "w"]

(3)如果接受的是两个参数 ,后面的参数是用来确定分割数组里面元素的个数,如果在按规则分割的时候 剩下多余的就变成一个元素

pry(main)> "mellow,yellow".split(//,4)

 => ["m", "e", "l", "low,yellow"]

(4)当然split 参数 也接受正则表达式,如下

pry(main)> "hi mom".split(%r{\s*})

 => ["h", "i", "m", "o", "m"]