Closed4
Python3_str, reモジュール
Python実践レシピより
Python3エンジニア認定実践試験メモ
文字列の検索、操作、正規表現
main.py
# 文字列を検索し、位置を返す
print("abcdefghijk".find("efg"))
# 4
# 文字列を検索し、位置を返す(存在しない場合)
print("abcdefghijk".find("xyz"))
# -1
# 文字列を分割し配列に格納
msg1 = "sun mon tue wed thu fri sat"
msgs = msg1.split()
msg2 = "_".join(msgs)
print(msg1)
# sun mon tue wed thu fri sat
print(msgs)
# ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']
print(msg2)
# sun_mon_tue_wed_thu_fri_sat
# 接頭辞が一致する文字列か調べる
prefix = ("hop", "step", "jump")
print("step.png".startswith(prefix))# True
print("stop.txt".startswith(prefix))# False
# 接尾辞が一致する文字列か調べる
suffix = ("png", "jpg", "gif")
print("step.png".endswith(suffix))# True
print("stop.txt".endswith(suffix))# False
正規表現
main.py
import re
# 検索対象の文字列
target = "abcdefghijk"
# 文字列に正規表現にマッチするか
print(re.search("d.f", target))
# <re.Match object; span=(3, 6), match='def'>
# 文字列の先頭部分に正規表現にマッチするかどうか
print(re.match("d.f", target))
# None
print(re.match("a.c", target))
# <re.Match object; span=(0, 3), match='abc'>
# フラグ
print(re.search("\w", "いろはにほへとABCDEFG"))
# い
# フラグ(UnicodeではなくASCII)
print(re.search("\w", "いろはにほへとABCDEFG", flags=re.A))
# A
正規表現オブジェクト
main.py
import re
# 検索対象の文字列
target1 = "abcdefghijk"
# 正規表現オブジェクト
regex1 = re.compile("d.f")
print(regex1.search(target1))
print(regex1.match(target1))# 先頭とマッチするか
print(regex1.fullmatch(target1))# 全体とマッチするか
regex2 = re.compile("[d-g]+")
print(regex2.search(target1))
print(regex2.match(target1))# 先頭とマッチするか
print(regex2.fullmatch(target1))# 全体とマッチするか
# 正規表現オブジェクト
regex3 = re.compile("[()-+]")
print(regex3.split("(080)1234-5678"))# 分割
# ['', '080', '1234', '5678']
print(regex3.split("080-1234-5678"))# 分割
# ['080', '1234', '5678']
print(regex3.split("+81-80-1234-5678"))# 分割
# ['', '81-80-1234-5678']
# マッチオブジェクト
result = re.match(r"(\d+)-(\d+)-(\d+)", "080-1234-5678")
print(result.group(0))# 全体
# 080-1234-5678
print(result.group(1))# サブグループ
# 080
print(result.group(2))# サブグループ
# 1234
print(result.group(3))# サブグループ
# 5678
正規表現の特殊文字
特殊文字 | 意味 |
---|---|
\d | 数字 |
\D | 数字以外 |
\s | 空白文字 |
\S | 空白文字以外 |
\w | 任意の英数字 |
\W | 任意の英数字以外 |
. | 任意の1文字 |
^ | 先頭 |
$ | 末尾 |
* | 0文字以上の繰り返し |
+ | 1文字以上の繰り返し |
? | 0回か1回の繰り返し |
{m} | m回の繰り返し |
{m, n} | m回以上、n回以下の繰り返し |
[...] | 指定したいずれかの文字 |
[^...] | 指定したいずれかの文字以外 |
(x|y) | xかyのいずれか |
このスクラップは2ヶ月前にクローズされました