Ruby是否有一个内置的string.startswith(";abc";)方法?
Ruby是否有一个Ruby是否有一个内置的string.startswith(";abc";)方法?,ruby,Ruby,Ruby是否有一个字符串。以内置的(“abc”)方法开始?您的问题标题和问题正文是不同的。Ruby没有一个启动程序?方法。然而,正如sepp2k所说,作为Ruby框架的Rails确实如此。请参阅他对答案的评论,以获取相关文档的链接 不过,您可以始终使用正则表达式: if SomeString.match(/^abc/) # SomeString starts with abc ^在正则表达式中表示“字符串的开头”您可以使用string=~Regex。它返回字符串中完全正则表达式匹配的位
字符串。以内置的(“abc”)
方法开始?您的问题标题和问题正文是不同的。Ruby没有一个启动程序?方法。然而,正如sepp2k所说,作为Ruby框架的Rails确实如此。请参阅他对答案的评论,以获取相关文档的链接
不过,您可以始终使用正则表达式:
if SomeString.match(/^abc/)
# SomeString starts with abc
^
在正则表达式中表示“字符串的开头”您可以使用string=~Regex
。它返回字符串中完全正则表达式匹配的位置
irb> ("abc" =~ %r"abc") == 0
=> true
irb> ("aabc" =~ %r"abc") == 0
=> false
它被称为,而不是
String#startswith
:在Ruby中,布尔ish方法的名称以?
结尾,方法名称中的单词以分隔。不确定s
去了哪里,我个人更喜欢String#start#u with?
而不是实际的String#start#u with?
如果这是用于非Rails项目,我会使用String#index
:
"foobar".index("foo") == 0 # => true
我认为subject+bods组合的意思是“Ruby没有starts\u with method.Does rails?”@sepp2k,但它是?
在问题标题中)字符串的start\u with?由于ruby 1.9()@steenslag-ruby 1.8.7也以?-在用字符串文本构建正则表达式时要小心——记住转义任何特殊字符。有一个函数表示fi字符串的文字可能是不可预测的Matz说他更喜欢没有s,因为它看起来像是第二人称单数或第三人称复数?是在ruby 1.8.7和1.9.0中引入的-对于旧版本,您可能希望使用其他答案中提到的正则表达式或索引版本之一。在Rails中,您可以使用字符串#start_with?@拟人化;这是String#start_with?@andrewgrim的别名唯一的问题是“a String”是第三人称单数!相关问题:顺便问一句,你是在问Ruby还是Rails?不过,这会更需要性能,在这种情况下,start\u with?
方法可以简单地确认字符串的开头与给定字符串匹配,从而最多处理n个字符,其中n是给定字符串的长度,而index
必须搜索整个基字符串。在失败的情况下,以?
开始将进行一次访问(每个字符串)和比较,而索引
将遍历基本字符串的几乎整个长度。请尽可能使用/
而不是%r
。