草庐IT

is_string

全部标签

ruby - 为什么 Ruby String#split 不将连续的尾随定界符视为单独的实体?

我正在读取一个政府文本文件,其中$用作分隔符,但我认为分隔符不重要...所以这是预期的:'a$b$c$d'.split('$')#=>["a","b","c","d"]在我正在处理的数据文件中,列标题行(第一行)被统一填充,即没有空标题,如:'a$b$$d'#or:'a$b$c$'但是,每行可能有连续的尾随分隔符,例如:"w$x$$\r\n"通常,我会阅读每一行并咀嚼。但这会导致String#split将最后两个定界符视为一列:"w$x$$\r\n".chomp.split('$')#=>["w","x"]不做chomp得到我想要的结果,虽然我应该chomp最后一个元素:"w$x$$\

Ruby String#scan 相当于返回 MatchData

正如问题标题中所述,Ruby字符串上是否有等效于String#Scan的方法?但不是只返回每个匹配项的列表,而是返回一个MatchData数组?例如:#Matchesasetofcharactersbetweenunderscorepairs"foo_bar__baz_hashbang".some_method(/_[^_]+_/)#=>[#<MatchData"_bar_"&rt,<MatchData"_baz_"&rt]或者任何我能得到相同或相似结果的方法都是好的。我想这样做是为了找到Ruby字符串中“字符串”的位置和范围,例如"goodbyeand"world"insid

ruby - 无法将 Hash 转换为 String?

我正在尝试解析来自Wordnik的API的JSON响应。这是用Sinatra构建的。我不断收到错误“/word的TypeError”“无法将Hash转换为String”。我是否错误地使用了json解析器?这是我的代码:get'/word'doresp=Wordnik.words.get_random_word(:hasDictionaryDef=>'true',:maxCorpusCount=>20,:minLength=>10)result=JSON.parse(resp)word=result.wordreturnword.to_send 最佳答案

ruby - "Pow is installed"现在出现在我所有的网站上

我为我正在开发的Rails应用安装了带有RVM的Pow。没关系。其他网站现在都说“已安装Pow”。我确定这是一个简单的设置,但我找不到它。有人遇到过这个吗?我在SnowLeopard上运行MAMP。 最佳答案 Pow将更改您的DNS解析,将所有以.dev或.test结尾的域路由到本地计算机(以命中pow)。如果您想同时使用MAMP和POW,您需要暂时关闭pow以便它可用(或者您可以使用80以外的其他端口更改MAMP设置)。要关闭pow,我建议安装powdergem:geminstallpowderpowderdown您还可以使用po

ruby - 在 Ruby 中如何使用 string.tr 将双引号替换为单引号?

如何在Ruby中使用string.tr将双引号替换为单引号? 最佳答案 'abc"def"ghi'.tr('"',"'")#=>abc'def'ghi 关于ruby-在Ruby中如何使用string.tr将双引号替换为单引号?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3860645/

ruby-on-rails - 动态类加载 : Is there a "method_missing" for classes in Ruby?

在我正在处理的Rails应用程序中,我有一个与单表继承模型“Node”相关的模型“Type”:Node的任何可能的子类都被定义为类型表中的一个Type。现在可以在初始化程序中加载所有类,但我想仅在需要时加载子类。我能想到的最佳解决方案是回退到一个未初始化的常量上,该常量将检查该常量是否可以代表应用程序中的一个类,类似于method_missing所做的事情。我想要一些关于如何以及在何处定义此逻辑的建议,或者是否有更好的解决方案。 最佳答案 我不知道这是否是新的,但我认为它值得添加。可以将缺少的方法用作类方法classExampled

ruby - String#encode 未修复 "invalid byte sequence in UTF-8"错误

我知道有很多关于此错误的类似问题,而且我已经尝试了很多,但都没有成功。我遇到的问题涉及字节\xA1并且正在抛出ArgumentError:invalidbytesequenceinUTF-8我尝试了以下但没有成功:"\xA1".encode('UTF-8',:undef=>:replace,:invalid=>:replace,:replace=>"").sub('','')"\xA1".encode('UTF-8',:undef=>:replace,:invalid=>:replace,:replace=>"").force_encoding('UTF-8').sub('','')"

Ruby 的 String#gsub、unicode 和非单词字符

作为一系列更大操作的一部分,我正在尝试获取更大字符串的标记化block并去除标点符号、非单词gobbledygook等。我最初尝试使用String#gsub和\W正则表达式字符类,如下所示:my_str="Hello,"processed=my_str.gsub(/\W/,'')putsprocessed#=>Hellosuper,super,super简单。当然,现在我正在扩展我的程序以处理非拉丁字符,而且一切都变得一团糟。Ruby的\W似乎类似于[^A-Za-z0-9_],当然,它排除了变音符号(ü、í等).所以,现在我以前简单的代码以令人不快的方式崩溃和燃烧:my_str="Qu

ruby - string.unpack 在 Ruby 中如何工作?

有人可以解释为什么如何计算以下解包的结果吗?"aaa".unpack('h2H2')#=>["16","61"]在二进制中,“a”=01100001。我不确定“h2”如何变成16(00010000)或“H2”如何变成61(00111101)。 最佳答案 不是16-它显示1,然后显示6。h给出每个半字节的十六进制值,所以你得到0110(6),然后是0001(1),这取决于你是高位还是低位看着。首先使用高位半字节,得到61,这是97的十六进制-'a'的值 关于ruby-string.unpa

ruby - 化简多个is_a?调用对象

如何使用迭代器重写这一行?actor.inspectifactor.is_a?Array||actor.is_a?Hash我的尝试无效:actor.inspectif[Array,Hash].each{|c|actor.is_a?c} 最佳答案 如果你想匹配精确的类(而不是后代),你可以使用:[Hash,Array].member?a.class我认为您应该解释一下您究竟需要实现什么。也许您唯一需要检查的是您的对象是否是Enumerable,或者即使它是respond_to?某个特定方法。