Tag: 正则表达式

使用Ruby获取网页的所有链接

我正在尝试使用Ruby检索网页的每个外部链接。 我正在使用String.scan与此正则表达式: /href=”https?:[^”]*|href=’https?:[^’]*/i 然后,我可以使用gsub删除href部分: str.gsub(/href=[‘”]/) 这很好用,但我不确定它在性能方面是否有效。 这可以使用,或者我应该使用更具体的解析器(例如nokogiri)? 哪种方式更好? 谢谢!

如何检测字符串内相同的部分?

我试图将解码算法想要的问题分解成更小的问题。 这是第一部分。 题: 两个字符串:s1和s2 s1的一部分与s2的一部分相同 空间是分隔符 如何提取相同的部分? 例1: s1 = “12 November 2010 – 1 visitor” s2 = “6 July 2010 – 100 visitors” the identical parts are “2010”, “-“, “1” and “visitor” 例2: s1 = “Welcome, John!” s2 = “Welcome, Peter!” the identical parts are “Welcome,” and “!” 例3 :(澄清“!”示例) s1 = “Welcome, Sam!” […]

Ruby:布尔正则表达式方法的正确语法是什么?

检查模式的字符串的方法的正确语法是什么,如果正则表达式匹配,则返回true或false? 基本理念: def has_regex?(string) pattern = /something/i return string =~ pattern end 使用案例: if has_regex?(“something”) # woohoo else # nothing found: panic! end

如何在Ruby字符串中的最后一个斜杠(/)之后返回所有内容

我有一个字符串,希望在最后一个/之后返回。 例如,对于https://www.example.org/hackerbob ,它应该返回”hackerbob” 。

将“a / b / c”转换为

在Ruby中,我想将一个斜杠分隔的字符串转换为[“foo / bar / baz”,“foo / bar”,“foo”]。 我已经有几行长的解决方案; 我正在寻找一个优雅的单线。 它还需要适用于任意数量的段(0和更高)。

从数组中删除项目需要多次传递才能将其全部删除

我有一个~1200个ruby对象的数组,我想循环它们并删除名称中包含单词或部分单词的对象。 所以我尝试了这个: list.each do |item| if item.name =~ /cat|dog|rat/i puts item.name list.delete(item) end end 它的工作原理,除了它似乎错过了一些名称应该匹配的项目。 如果我再次运行它会发现更多,如果我再次运行它会发现更多。 它每次都找不到,但我必须运行它3次才能删除所有内容。 为什么世界会发生这种情况?

Ruby 1.9正则表达式作为哈希键

我正在尝试这个例子myhash = {/(\d+)/ => “hello”}与ruby 1.9.2p136(2010-12-25)[i386-mingw32] 。 它没有按预期工作(编辑:因为事实certificate它不应该像我期望的那样工作): irb(main):004:0> myhash = {/(\d+)/ => “hello”} => {/(\d+)/=>”Hello”} irb(main):005:0> myhash[2222] => nil irb(main):006:0> myhash[“2222”] => nil 在rubular中 ,在ruby1.8.7上, 正则表达式起作用。 我错过了什么?

如何在字符串中获得可能重叠的匹配

我正在寻找一种方法,无论是在Ruby还是Javascript中,它都会在字符串中为正则表达式提供所有匹配,可能重叠。 假设我有str = “abcadc” ,我想找到a后跟任意数量的字符,然后是c 。 我正在寻找的结果是[“abc”, “adc”, “abcadc”] 。 关于如何实现这一目标的任何想法? str.scan(/a.*c/)会给我[“abcadc”] , str.scan(/(?=(a.*c))/).flatten会给我[“abcadc”, “adc”] 。

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

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

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

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