|
[ruby-list:42112] Re: [Q] perl の m//g に相当する処理を ruby で行ないたい: msg#00143lang.ruby.japanese
木村です。 On Tue, 25 Apr 2006 12:57:35 +0900 "ITSUMI ken-ichi" <itsumi.ml-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx> wrote: > ruby勉強中の 逸見と申します。 > > perl でいうところの m//g で行なう処理を ruby ではどう書くのかリファレンスマニュアル > を精読しても判らなかったので、質問させていただきます。 scanを使えばよろしいかと。 #Stringクラスにあります。 irb(main):001:0> "foo,bar,baz".scan(/\w+/) => ["foo", "bar", "baz"] このように配列で返ってきます。 ブロックを与えてそこで処理することも可能です。 > content = urllib.urlopen(sys.argv[1]).read() > pattern=re.compile("<form.*?>" > + "|</form>" > + "|<input.*?/>" > + "|<input.*?>" > + "|<textarea.*?</textarea>" > + "|<select.*?</select>" > ,re.IGNORECASE|re.DOTALL) re.DOTALL と同じことをさせるのは m修飾子(オプション)もしくは Regexp#MULTILINEで、re.IGNORECASE は i修飾子か Regexp#IGNORECASE ですから、 Regex.new("パターンをここに", Regex#MULTILIE | Regex.IGNORECSE) で作るなどすればよいでしょう。 あと、空白の扱いに注意する必要はありますが、EXTENDEDフラグを つけると見やすくできるかも。 -- 木村浩一
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42111] [Q] perl の m//g に相当する処理を ruby で行ないたい, ITSUMI ken-ichi |
|---|---|
| Next by Date: | [ruby-list:42113] [Q]式中の改行と演算子位置 Was: [Q] perl の m//g に相当する処理を ruby で行ないたい, ITSUMI ken-ichi |
| Previous by Thread: | [ruby-list:42111] [Q] perl の m//g に相当する処理を ruby で行ないたい, ITSUMI ken-ichi |
| Next by Thread: | [ruby-list:42113] [Q]式中の改行と演算子位置 Was: [Q] perl の m//g に相当する処理を ruby で行ないたい, ITSUMI ken-ichi |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |