|
[ruby-list:42115] Re: [Q]式中の改行と演算子位置 Was: [Q] perl の m//g に相当する処理を ruby : msg#00146lang.ruby.japanese
木村です。 On Tue, 25 Apr 2006 14:00:35 +0900 "ITSUMI ken-ichi" <itsumi.ml-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx> wrote: > # -*- coding:euc-japan-unix; mode:ruby -*- > > $KCODE="e" # EUC > > require 'open-uri' > > content = URI.parse(URI.escape(ARGV[0])).read > #print content > > pattern = Regexp.compile("<form.*?>" + > "|</form>"+ > "|<input.*?/>"+ > "|<input.*?>"+ > "|<textarea.*?</textarea>"+ > "|<select.*?</select>", > Regexp::IGNORECASE | > Regexp::MULTILINE # perlの //s がRubyではこうなる > ) ここでのパターン生成ですが、 Regexp.compile("<form.*?> |</form> |<input.*/> |<input.*? |<textarea.*?</textarea> |<select.*?</select>", Regexp::IGNORECASE | Regexp::MULTILINE | Regexp::EXTENDED) のように書くことができます(EXTENDEDフラグがポイント)。 このフラグをつけると、与えた正規表現中の空白文字類が無視されます (空白を陽に指定したいときはエスケープするなどする)。 Pythonでも、"""(もしくは''')とre.VERBOSE(もしくは re.X)を組み合わせて 同じことができます。コメントも入れやすくなるので、複雑な正規表現を 少しでもわかりやすく記述するには良いかもしれません。 参考までに。 -- 木村浩一
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42114] Re: [Q]式中の改行と演算子位置 Was: [Q] perl の m//g に相当する処理を ruby で行ないたい, Yukihiro Matsumoto |
|---|---|
| Next by Date: | [ruby-list:42116] Re: puts,printの出力をファイルにも出力するには, Hidetoshi NAGAI |
| Previous by Thread: | [ruby-list:42114] Re: [Q]式中の改行と演算子位置 Was: [Q] perl の m//g に相当する処理を ruby で行ないたい, Yukihiro Matsumoto |
| Next by Thread: | [ruby-list:42118] Re: puts,printの出力をファイルにも出力するには, 岩崎 弘孝 |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |