2000-06-04から1日間の記事一覧

文字列パターン内で,AND,ORを表現する

/re1|re2/ # re1かre2が含まれる文字列 /re1.*re2|re2.*re1/ # re1とre2が重複せずに両方含む文字列

連続する単語

re = /(foo|bar)\1/ p 'foofoo' =~ re #=> 0 p 'foobar' =~ re #=> nil p 'barfoo' =~ re #=> nil p 'barbar' =~ re #=> 0 re = /(foo|bar)(?!\1)(foo|bar)/ p 'foofoo' =~ re #=> nil p 'foobar' =~ re #=> 0 p 'barfoo' =~ re #=> 0 p 'barbar' =~ re #=> …

欲張りマッチと非欲張りマッチ

str = "<b>foo</b> <strike>bar</strike>" p str.gsub(/<.*>/, '') #=> "" p str.gsub(/<.*?>/, '') #=> "foo bar" {m} m回 {m,} m回以上 {m,n} m回以上,n回まで

ワイルドカードを正規表現にする

def wild_to_re( pat) Regexp.new( "\\A"+pat.gsub(/\./,'\\.').gsub(/\*/,'.*').gsub(/\?/,'.')+"\\z") end p wild_to_re( '*.*') #=> /\A.*\..*\z/ p wild_to_re( 'log????.txt') #=> /\Alog....\.txt\z/ これはライブラリの中をあされば,似たようなコー…