Python

Python 文字列の操作

文字列の分割・結合

"a,b,c,d".split(",") # ,で分割
"a b\tc\nd".split() # スペース、タブ、改行で分割
"a,b,c".split(",", 1)  # 分割は1回に制限 ('b,c'はそのまま)
"a,b,c".rsplit(",", 1)  # 分割は1回に制限 ('a,b'はそのまま)
",".join(["a", "b", "c"]) # ,で結合

文字列の置換 (シンプルな置換)

"abcd".replace("ab", "AB") # abをABに置き換える

文字列検索

"abcd".find("a")  # あるなら位置を返す
"abcd".find("g") # ないので-1
"abcd".index("a") # あるなら位置を返す
"abcd".index("x") # ない時はエラー
"abcd".startswith("ab") # abで始まっているか
"abcd".endswith("ab") # cdで始まっているか

文字列からascii、asciiから文字列へ変換

ord("a") # アスキーコードを返す
chr(97) # 文字を返す

format関数による文字列フォーマット

"first:{0}, second:{1}".format("a", "b") # インデックスを指定
"first:{x}, second:{y}".format(x="a", y="b") # キーワードで指定

%を使った文字列フォーマット操作

"[%-5.2f]" % (1.2345)  # %-5は右にスペース埋めで5桁
"[%06.2f][%+04.1f]" % (1.2345, 6.7890)  # %06は左に0埋めで6桁, %+は符号

ハッシュ生成

import hashlib
hashlib.md5("abc".encode('utf-8')).hexdigest()
hashlib.sha256("abc".encode('utf-8')).hexdigest()

文字列の正規表現マッチング

# 完全マッチ
import re
m = re.match(r"\d\d-\d", "12-3")
print(m.group(0)) # "12-34" 完全マッチしないときはNone

m = re.match(r"(\d\d)-(\d)", "12-3")  #group取得
print(m.group(0)) # "12-3"
print(m.group(1)) # "12"
print(m.group(2)) # "3"

# 部分一致
m = re.search(r"\d\d\d", "123-4") 
print(m.group(0)) #123

文字列の正規表現、置換、分割

import re
re.split(r'[,:]', "a,b:c")