logo       

[ruby-list:42111] [Q] perl の m//g に相当する処理を ruby で行ないたい: msg#00142

lang.ruby.japanese

Subject: [ruby-list:42111] [Q] perl の m//g に相当する処理を ruby で行ないたい

ruby勉強中の 逸見と申します。

perl でいうところの m//g で行なう処理を ruby ではどう書くのかリファレンスマニュアル
を精読しても判らなかったので、質問させていただきます。

● 問題

正規表現を、バッファ全体に複数存在する、複数行に渡るパターンにマッチさ
せたい。

例えば、python なら↓のように finditer() を使う処理を ruby ではどうする
か知りたいのです。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
content = urllib.urlopen(sys.argv[1]).read()
pattern=re.compile("<form.*?>"
+ "|</form>"
+ "|<input.*?/>"
+ "|<input.*?>"
+ "|<textarea.*?</textarea>"
+ "|<select.*?</select>"
,re.IGNORECASE|re.DOTALL)
for tag in pattern.finditer(content): print tag.group()

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

perl なら m//g, python なら、re.finditer/re.findall()を使う所なので
すが、ルビーのリファレンスマニュアル
(http://www.ruby-lang.org/ja/man/?cmd=view;name=Regexp#EXTENDED)をみる
と perl でいう所の m//xis に相当するオプションしか見当りません。
oniguruma には g オプションがあるようですが...

先輩方の御指導をお願い致します。

--
逸見研一(いつみけんいち)
Mixi http://mixi.jp/show_friend.pl?id=113732
Orkut http://www.orkut.com/Profile.aspx?uid=11299027584966195898
Blog http://d.hatena.ne.jp/amt/
Plan http://calendar.yahoo.co.jp/amt_tmp




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise