• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ruby正規表現で複数の文字列にマッチさせる方法)

Ruby正規表現で複数の文字列にマッチさせる方法

このQ&Aのポイント
  • Rubyの正規表現を使用して複数の文字列にマッチさせる方法を知りたいです。
  • 具体的には、Rubyでhtmlの中から.rdfか.xmlで終わるURLを取り出す方法について教えてください。
  • 現在は複数の正規表現を使用してURLを取り出していますが、一行で書ける正規表現があれば教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

(xml|rss) と書けばいいです。scan で使う場合は、(?:xml|rss) です。 その前の部分の正規表現がかなりへんてこです。記号は全部 \ を前置する必要があると思っているのですか?それは間違いです。

benzo_1
質問者

お礼

あーそうなんですか。?:が必要なんですね。 http://docs.ruby-lang.org/ja/1.9.3/doc/spec=2fregexp.html ここにありました。 だからかー。だから"xml"と"rss"が取り出されてたのかー。 なるほどありがとうございます。 記号のエスケープですが、私の無知+調べるのがめんどくさい+ハマったんで動けばなんでもいいというノリで上記のようにしていました。 改めて調べると・・・ # エスケープが必要な記号 # \*+.?{}()[]^$|/(場合によって)- であると。 なるほど。正規表現中で意味を持つ記号だけエスケープを必要するということですね。 だから ['`"<> \\\|\^\)\(\}\{\]\[\]] こう書けばよかったと。 ・・・覚えてらんねぇよ。 なかなかややこしいですね。 今ココで理解してもたぶん来月には忘れていると思いますが、 おかげさまで僕のソースコードがスッキリして夜もよく眠れそうです。 ありがとうございました。

関連するQ&A