[#41876] mswin32版のライセンスについて — TOBY <toby@...>

はじめまして、rubyを愛してやまないTOBYと申します。

13 messages 2006/03/05

[#41886] "win32/registry" と "dl/win32" の相性について — take_tk <ggb03124@...>

たけ(tk)です

14 messages 2006/03/07
[#41887] Re: "win32/registry" と "dl/win32" の相性について — nobu@... 2006/03/07

なかだです。

[#41888] Re: "win32/registry" と "dl/win32" の相性について — take_tk <ggb03124@...> 2006/03/07

たけ(tk)です

[#41933] Cygwin での #!/bin/env ruby -Ks — "Hideo Konami" <konami@...>

小波です。Cygwin で Ruby のスクリプトをいつも書いています。

14 messages 2006/03/22

[ruby-list:41932] Re: look-behindの使用例

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2006-03-22 12:06:30 UTC
List: ruby-list #41932
西山和広です。

>>> Tue, 21 Mar 2006 16:01:56 +0900 の刻に
>>> sndgk393@ybb.ne.jp("K.Kosako") 氏曰く
> Hal Fultonからメールが来て(the 2nd edition of _The Ruby Way_
> のためだと思う)、その中にlook-behindの使用例を教えてくれ
> というのがありました。僕は正規表現が苦手で、鬼車のデバッグ
> 以外ではあまり正規表現を使いません。
> 正規表現雑技(http://www.din.or.jp/~ohzaki/regex.htm)を
> 参考にして、とりあえず以下のような例を作りましたが、
> もっと現実的な良い例があれば教えてください。

いくつか考えたり見つけたりしたのを列挙します。


特定の単語を探すのに
  /(^|[^A-Z])RFC(?![A-Z])/
としなければいけなかったのを、
  /(?<![A-Z])RFC(?![A-Z])/
と書けるようになります。


ちょっと試しただけなので、まだ文字クラスの中の条件が
足りないような気がしますが、ASCII文字といわゆる全角文字の
間に空白を入れる正規表現です。

"Rubyの最新安定版は1.8.4です。".gsub(/(?<=[\w&&[:ascii:]])(?=[^[:ascii:]])|(?<=[^[:ascii:]])(?=[\w&&[:ascii:]])/, ' ')
#=> "Ruby の最新安定版は 1.8.4 です。"
"look-behindを使うにはOnigurumaが必要です。".gsub(/(?<=[\w&&[:ascii:]])(?=[^[:ascii:]])|(?<=[^[:ascii:]])(?=[\w&&[:ascii:]])/, ' ')
#=> "look-behind を使うには Oniguruma が必要です。"


Rubyの変数のうち、クラス変数にマッチさせずに
インスタンス変数にマッチする正規表現です。

'$gvar, @@cvar, @ivar, lvar'.gsub(/(?<!@)@\w+/){"<#{$&}>"}
#=> "$gvar, @@cvar, <@ivar>, lvar"


http://www.ruby-lang.org/ja/man/?cmd=view;name=%C0%B5%B5%AC%C9%BD%B8%BD#a.bf.f4.bb.fa.a4.f2.203.20.b7.e5.a4.ba.a4.c4.a5.b3.a5.f3.a5.de.a4.c7.b6.e8.c0.da.a4.eb
の方法1に例がありました。
  "tone of 12345Hz".gsub(/(?<=\d)(?=(?:\d\d\d)+(?!\d))/, ',')


http://moriq.tdiary.net/20030203.html#p05
にも使用例がありました。


他には「URLの前に「="」または「=」がなければ自動リンクする」と
いうのもlook-behindを使うと可能なようです。


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

In This Thread