字符串包含

时间:2012-11-12 20:26:31

标签: ruby string

有没有办法检查Ruby是否字符串"1:/2"包含在一个更大的字符串str中,旁边是迭代str的所有位置?

3 个答案:

答案 0 :(得分:6)

您可以使用include?方法

str = "wdadwada1:/2wwedaw"
# => "wdadwada1:/2wwedaw"
str.include? "1:/2"
# => true

答案 1 :(得分:5)

正则表达式会这样做。

s =~ /1:\/2/

如果s不包含字符串,则返回nil;如果不包含字符串,则返回整数位置。由于nil是 falsy 且整数是 truthy ,因此您可以在if语句中使用此表达式:

if s =~ /1:\/2/
  ...
end

正则表达式通常由/分隔,这就是正则表达式中的斜杠转义为\/

的原因

可以使用不同的分隔符来避免必须转义/

s =~ %r"1:/2"

如果需要,您可以使用此语法使用除"之外的其他字符。

答案 2 :(得分:4)

最简单和最直接的是简单地询问字符串是否包含子字符串:

"...the string 1:/2 is contained..."['1:/2']   
# => "1:/2"
!!"...the string 1:/2 is contained..."['1:/2'] 
# => true

The documentation有完整的独家新闻;看看最后两个例子。