Tag: 字符串

如何在Ruby中返回一个整数的固定长度二进制表示?

我知道我可以使用Fixnum#to_s将整数表示为二进制格式的字符串。 但是1.to_s(2)产生1并且我希望它产生00000001 。 如何使所有返回的字符串都填充为8个字符的零? 我可以使用类似的东西: binary = “#{‘0’ * (8 – (1.to_s(2)).size)}#{1.to_s(2)}” if (1.to_s(2)).size < 8 但这似乎并不优雅。

如何在Ruby中进行模糊子串匹配?

我找到了很多关于模糊匹配的链接,将一个字符串与另一个字符串进 我有一个非常长的字符串,它是一个文档和一个子字符串。 子字符串来自原始文档,但已被多次转换,因此可能引入了奇怪的工件,例如此处的空格,字符串。 子字符串将匹配原始文档中文本的一部分99%或更多。 我不匹配以查看此字符串是哪个文档,我试图在文档中找到字符串开始的索引。 如果字符串是相同的,因为没有引入随机错误,我会使用document.index(substring) ,但如果有一个字符差异,则会失败。 我认为通过删除字符串和子字符串中除az以外的所有字符来比较差异,然后使用压缩字符串时生成的索引将压缩字符串中的索引转换为真实文档中的索引。 这种情况很好用,其中差异是空格和标点符号,但只要一个字母不同就失败了。 该文档通常是几页到一百页,而子串从几个句子到几页。

如何从可能具有前导零的字符串中解析数字?

在ruby中,我使用以下格式解析日期:24092008.我想将每个部分(年,月,日)转换为数字。 我使用正则表达式将它们拆分,它产生三个字符串,我将它传递给Integer构造函数。 date =~ /^([\d]{2})([\d]{2})([\d]{4})/ year = Integer($3) month = Integer($2) day = Integer($1) 当它达到月线时,崩溃如下: `Integer’: invalid value for Integer: “09” (ArgumentError) 我花了一段时间才意识到它正在解释前导零,因为Octal和09不是有效的八进制数(它与“07”一起工作正常)。 有没有一个优雅的解决方案,或者我应该测试小于10的数字并首先删除零? 谢谢。

为什么分裂(”)试图(太)聪明?

我刚刚发现了String#split的以下奇怪行为: “a\tb c\nd”.split => [“a”, “b”, “c”, “d”] “a\tb c\nd”.split(‘ ‘) => [“a”, “b”, “c”, “d”] “a\tb c\nd”.split(/ /) => [“a\tb”, “c\nd”] 源 (string.c from 2.0.0)超过200行,包含如下所示的段落: /* L 5909 */ else if (rb_enc_asciicompat(enc2) == 1) { if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ‘ ‘){ split_type = awk; } } 之后,在awk split类型的代码中,实际参数甚至不再使用,并且与普通split相同。 有没有人觉得这有点被打破了? 这有充分的理由吗? 这样的“魔术”是否比大多数人在Ruby中想象的更频繁?

在Ruby中如何匹配子字符串之前,如何删除字符串中的所有字符?

说我有一个字符串: Hey what’s up @dude, @how’s it going? 我想在@how’s之前删除所有字符。

查找一个句子是否包含Ruby中的特定短语

现在我通过将句子分成数组然后执行包含以查看它是否包含单词来查看句子是否包含特定单词。 就像是: “This is my awesome sentence.”.split(” “).include?(‘awesome’) 但我想知道用短语做这个的最快方法是什么。 就好像我想查看句子“这是我真棒的句子”。 包含短语“我很棒的句子”。 我正在抓句子并比较大量的短语,所以速度有点重要。

Ruby:如何将数组的元素与前缀一起加入?

我有一个像这样的数组: [“marblecake”, “also”, “the”, 1337] 我想找回一个字符串,其中包含以某个指定字符串为前缀的数组的每个元素,然后由另一个指定的字符串连接在一起。 例如, [“marblecake”, “also”, “the”, 1337].join_with_prefix(“%”, “__”) 应该导致 # => %marblecake__%also__%the__%1337 我怎么能这样做?

Ruby – 从字符串中删除模式

我有一个字符串模式,作为一个例子,看起来像这样: WBA – Skinny Joe vs. Hefty Hal 我想从字符串中截断模式“WBA – ”并返回“Skinny Joe vs. Hefty Hal”。

简单的正则表达式 – 用空格替换下划线

嘿,我正在写我的第一个Rails应用程序,我正在尝试用空格替换下划线形成一个传入的id名称,如下所示: 之前 :test_string 之后 :测试字符串 我怎样才能做到这一点? 对不起,如果这是一个愚蠢的问题,我对正则表达式不是很熟悉……

如何从Ruby数组中选择最长的字符串?

但是上面的[重复建议]是多维数组,而不是针对我在这里提出的更简单的情况。 例如,如果我有: ‘one’,’two’,’three’,’four’,’five’ 我想选择three因为它是最长的字符串。 我试过了: [‘one’,’two’,’three’,’four’,’five’].select{|char_num| char_num.size.max} 但是Enumerable #max不会返回正确的结果。