LoginSignup
10
12

More than 5 years have passed since last update.

Python reモジュール 基本の使い方まとめ

Last updated at Posted at 2018-04-29

reモジュール基礎知識

毎回調べるのでこの際まとめました。

matchとsearchの違い

  • match
    文字列の先頭から一致するものだけ
  • search
    途中から一致するものも対象(こっちの方がよく使う)

subとreplaceの違い

subはreモジュールの一部、replaceはpythonの文字列変換の基本機能

sub

正規表現で置換する際に使用
re.sub("置換対象の文字列(正規表現)","置換後の文字列",置換対象のstr変数)

Moji="abc"
Henkan=re.sub("[ab]","d",Moji)

>>> Henkan
'ddc'

replace

置換対象のstr変数.replace("置換対象の文字列(正規表現)","置換後の文字列")

Moji = "Python"
Henkan = Moji.replace("P","p")

>>> Henkan
'python'

正規表現基礎知識

正規表現 意味
\w 英数字
[a-zA-Z] 英字*
\d 数字
\D 非英数字

*pythonでは\lを使った英字のみの正規表現は使えないっぽい

正規表現繰り返し

*

(前の文字の0回以上繰り返し)
pattern = "a*"
matchするもの = "", "a", "aaaaaaa"

+

(前の文字の0回以上繰り返し)
pattern = "a+"
matchするもの = "a", "aaaaaaa"

{m}

(前の文字のm回繰り返し)
pattern = "a{4}"
matchするもの = "aaaa"

{m,n}

(前の文字のm~n回繰り返し)
pattern = "a{2,4}"
matchするもの = "aa","aaa","aaaa"

patternとgroup1

pattern: 抜き出したい英数字を正規表現で含む文字列
group(0): マッチした文章まるごと
group(n): n番目にマッチしたグループ(複数グループがある場合のみ)

message = "I have 20 dogs and 30 cats."
pattern = "I have (\d+) dogs and (\d+) cats."
match = re.search(pattern,message)

>>> match.group(0)
'I have 20 dogs and 30 cats.'
>>> match.group(1)
'20'
>>> match.group(2)
'30'

patternとgroup2

match = re.search('(?<=この文字列以降から抽出)欲しい部分を正規表現で指定',検索対象の文字列)

例)大根の値段のみを抽出したい

match = re.search('(?<=daikon )\d+','daikon 100yen') 
price = match.group(0) 

>>> price
100
10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12