2007-05-01から1ヶ月間の記事一覧

文字列の先頭と末尾の空白を削除する

str = " abcXYZdefABCasfgYAb " p str.sub(/^\s+/, "").sub(/\s+$/, "") # 正規表現 p str.strip() # 専用命令

ヒアドキュメント

TODO: そのうち調べる

文字列を大文字/小文字にする

str = "abcXYZdefABC" p str.upcase p str.downcase # 適当に大文字/小文字に変換する str = 'abcxyzdefabcasfgyabjahisfaaaewiyfet' p str.gsub(/./) {|x| (rand(100)<50)? x.downcase: x.upcase } #=> "abCxYZdEfabCASFgYABjahiSFaAAEWiyFEt"

タブを空白に,空白をタブに変える

def tabify(str) s = untabify(str) # タブが含まれていると位置がズレる a = s.scan(/.{1,4}/) # タブ幅4 a = a.map {|x| x.sub(/ +\z/,"\t") } a.join('') end def untabify(str) tab_size = 4 # タブ幅4 a = str.split(/(\t)/) a.inject(s='') {|x,y| x <…

文字単位,単語単位で反転する

p "abcdef".reverse p "abc def ghi jklmn opqr".split(' ').reverse.join(' ') p "日本語の反転".scan(/./).reverse.join('') こんなの使わないんじゃ…

文字列を文字コードの配列に変換する.またその逆

a = "abcdef".unpack("c*") p a.pack("c*") # 1文字単位で処理する str = "abcdef" str.each_byte {|x| p ":#{x}"} str.gsub(/./) {|x| p ";#{x}"} p str.scan(/./) # 1文字ずつ配列にする

デフォルト値を設定する

x ||= 'y' # x = 'y' unless x と等価?

部分文字列を取りだす

str = "abcdefghijklmn" # mからn番目の文字までを取り出す p str[2..4] # m番目からn文字を取り出す p str[2,4] # m番目以降のすべてを取り出す. p str[5..-1] # 指定部分を置き換える.長さが違っていてもよい str[2,4] = "XYZ" p str # str[0,1] = "" # …

備忘録目次 - ロバの耳

備忘録目次

perl cookbookの中で,使いそうな機能をメモしてみる. 適当に書いているので,普通にバグが入っていそう.バグを見つけたらこっそり直す予定. 部分文字列を取りだす - ロバの耳 デフォルト値を設定する - ロバの耳 文字列を文字コードの配列に変換する.ま…

キャッシュ

キャッシュをキャッシュでないと言い張る人間が出てくれば、Webの世界は使い物にならなくなる - ものがたり(旧) あれって著作権とかそういう話だったの?別件? 日記にうっかり個人を特定できる情報を書いたのに気づいて,当該日記を削除したのに,検索エン…