西山和広です。
>>> Fri, 3 Mar 2006 17:48:33 +0900 (JST) の刻に
>>> kbk@...(Bruce.) 氏曰く
>
> のような正規表現で、空文字列にマッチする選択があるのが美しくない
> と考えて2番目のキャプチャ部分を
>
> ( \d{3} (?: \. \d* ) )?
>
> のようにすると、食わせるパターンによっては \2 が存在しないことで
> 例外が発生します。Perl や Rubyだと空文字列になるんですが、
> こういうところも Python らしいといえば Python らしいのかも。
私の場合は、最初に (...)? の方を試して例外になってしまったので、
(...|) に変えました。
# と一応Pythonの話も入れつつ...
ちなみにRubyだとnilになるはずです。
if /\d+(\.\d+)?/ =~ '123'
p [$&, $1] #=> ["123", nil]
end
> にしても末尾の空白を何とかできんものか。
> PerlやRubyなら消せたんだが。
PerlやRubyではどうやったのでしょうか?
--
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)