26

このメソッドでrubyを使用してmatchいて、特定の文字列を含まないURLを正規表現と照合したいと思います。例:

http://website1.com/url_with_some_words.html
http://website2.com/url_with_some_other_words.html
http://website3.com/url_with_the_word_dog.html

単語を含まないURLを照合したいdogので、1番目と2番目のURLを照合する必要があります

4

4 に答える 4

49

否定的な先読みを使用して^(?!.*dog).*$ください。

説明

  • ^: 行頭に一致
  • (?!.*dog): 否定先読み、dog という単語が存在しないかどうかを確認します
  • .*: すべてに一致 (この場合は改行を除く)
  • $: 行末に一致

オンラインデモ

于 2013-07-22T21:06:03.560 に答える
9

使うだけ

string !~ /dog/

必要な文字列を選択します。

于 2012-07-25T16:06:55.043 に答える
2

select を使用して、これを行う非常に簡単な方法があります。

array_of_urls.select { |url| !url.match(/dog/) }

これは、「犬」という単語をどこにも含まない URL の配列を返します。

于 2014-01-05T13:26:59.027 に答える
0

あなたが使用できる別のものは次のとおりです。

!url['dog']

あなたの例では:

array = []
array << 'http://website1.com/url_with_some_words.html'
array << 'http://website2.com/url_with_some_other_words.html'
array << 'http://website3.com/url_with_the_word_dog.html'

array.select { |url| !url['dog'] }

以下を含むURL を拒否することもできます'dog'

array.reject { |url| url['dog'] }
于 2016-02-11T16:03:13.230 に答える