2

除了遍历所有位置之外,有没有办法在 Ruby 中检查字符串"1:/2"是否包含在更大的字符串中?strstr

4

3 回答 3

6

您可以使用该include?方法

str = "wdadwada1:/2wwedaw"
# => "wdadwada1:/2wwedaw"
str.include? "1:/2"
# => true
于 2012-11-12T20:31:23.290 回答
5

正则表达式会做到这一点。

s =~ /1:\/2/

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

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

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

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

s =~ %r"1:/2"

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

于 2012-11-12T20:28:34.687 回答
4

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

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

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

于 2012-11-12T20:49:22.987 回答