Tag: 正则表达式

检查字符串是否包含Ruby中数组中的任何子字符串

我正在使用Tmail库 ,对于电子邮件中的每个附件,当我执行attachment.content_type ,有时我不仅会获得内容类型,还会获得名称。 例子: image/jpeg; name=example3.jpg image/jpeg; name=example.jpg image/jpeg; name=photo.JPG image/png 我有一系列有效的内容类型,如下所示: VALID_CONTENT_TYPES = [‘image/jpeg’] 我希望能够检查内容类型是否包含在任何有效的内容类型数组元素中。 在Ruby中这样做的最佳方式是什么?

解析单个键/值的字符串的“ruby方式”是什么?

我正在尝试解析多行字符串并获取模式后面的其余行。 文本: 你好约翰 您的用户名是:jj 感谢您的注册 我想提取jj,即“你的用户名是:”之后的所有内容 单程: text = “hello john\nyour username is: jj\nthanks for signing up\n” match = text[/your username is: (.*)/] value = $1 但这让我想起了perl ……并且不像我告诉ruby那样自然地“阅读”。 有更干净的方式吗? AKA一种“ruby”的方式? 谢谢

ruby通过重复字符或空格来分割字符串

我该如何拆分这个字符串。 “6885558 8866887777” => [“6”, “88”, “555”, “8”, “88”, “66”, “88”, “7777”] 我试过这个,但它从未奏效。 ruby-1.8.7-p334 :020 > “111133”.split(/(\d)\1+/) => [“”, “1”, “”, “3”]

如何获取字符串中所有模式的索引

string = “Jack and Jill went up the hill to fetch a pail of water. Jack fell down and broke his crown. And Jill came tumbling after. ” d = string.match(/(jack|jill)/i) # -> MatchData “Jill” 1:”Jill” d.size # -> 1 这只匹配它看起来的第一次出现。 string.scan部分完成了这项工作,但它没有说明匹配模式的索引。 如何获得模式的所有匹配实例及其索引(位置)的列表?

Ruby电子邮件检查(RFC 2822)

有谁知道Ruby中的正则表达式是validation电子邮件地址是否采用适当的RFC 2822电子邮件格式? 我想做的是: string.match(RFC_2822_REGEX) 其中“RFC_2822_REGEX”是正则表达式,用于validation我的字符串是否为有效的RFC 2882格式。

如何使用ruby regexp用“回调函数”类似的操作替换字符串

我有样本行,我想用#s替换前导#s。 (前两行)但是在string.gsub!(/^#+\w/, “”) ,我无法得到我想要替换的#的数量。 在javascript中,我可以使用带有replace方法的回调函数,但是如何归档这个Ruby呢? ##Command-line Tool ###Installment This is a ‘#’. 预期结果: ==Command-line Tool ===Installment This is a ‘#’.

将字符串拆分为Ruby中的字符对

我有一个字符串(例如“AABBCCDDEEFF”)并希望将其拆分为一个数组,每个元素包含两个字符 – [“AA”,“BB”,“CC”,“DD”,“EE”,“FF”] 。

除了括号内,如何使用正则表达式用逗号分隔字符串?

我想用逗号分割一个字符串: “a,s”.split ‘,’ # => [‘a’, ‘s’] 如果它被括号括起来,我不想分割子字符串: “a,s(d,f),g,h” 应该产量: [‘a’, ‘s(d,f)’, ‘g’, ‘h’] 有什么建议吗?

正则表达式匹配由不匹配字符分隔的字符数

我想计算字符数,但它们可能被不匹配的字符分开。 这是一个例子。 我想匹配一个包含10个或更多单词字符的文本。 它可能包括空格,但我不想计算空格。 不应该匹配:“foo bar baz”(应该算9) 不应该匹配:“a a”(应该算2) 应该匹配:“foo baz bars”(应该算10,匹配整个字符串) 这就是我提出的,但它重要的是: ((?<=\s)*\w(?=\s)*){10} 编辑我不想包含空格来计算。 对不起,我编辑了几次,我没有正确描述。 有什么想法吗?

ruby正则表达式找到并替换

我有以下输出: time = 15:40:32.81 我想消除:和. 所以它看起来像这样: 15403281 我试过做了 time.gsub(/\:\s/,”) 但那没用。