1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python、正規表現について

Posted at

#正規表現についてよく使いそうなものをメモ。
・Mac
・python

<メモ内容>
① ”.”は 改行以外の任意の1文字(数字含む)
② matchは、先頭からマッチするかを判定する関数、マッチする場合はmatchオブジェクト(正規表現をまとめたもの)を返し、マッチしなければNONEを返す。
③ searchは、途中でマッチするかどうかを判定する関数。2箇所ある場合は最初の1箇所のみ返す。マッチする場合はmatchオブジェクトを返し、マッチしなければNONEを返す。
④ splitは指定した文字で分割する関数、返り値はリスト型
⑤ findallは、指定した文字を全て返す関数、返り値はリスト型

#(1)例題

import re

text1 = 'abcde'
text2 = 'a'
text3 = '1234'
text4 = 'a1234'
text5 = 'a1234a567'
text6 = '住所は123-3456東京都中央区999-9999'
text7 = '〒123-1234東京都中央区999-9999'
text8 = '〒1231234東京都中央区9999999'
text9 = '〒123-1234:東京都:中央区999-9999'
text10 = '〒123-1234 東京都 中央区:999-9999'

#(2)実行内容

###①text1 = 'abcde'の場合

print(re.match('.',text1))
print(re.match('abc',text1))
print(re.match('abc$',text1))
print(re.match('\d\d',text1))

実行結果

<re.Match object; span=(0, 1), match='a'>
<re.Match object; span=(0, 3), match='abc'>
None
None

###②text2 = 'a'の場合

print(re.match('.',text2))
print(re.match('abc',text2))
print(re.match('abc$',text2))
print(re.match('\d\d',text2))

実行結果

<re.Match object; span=(0, 1), match='a'>
None
None
None

###③text3 = '1234'の場合

print(re.match('.',text3))
print(re.match('abc',text3))
print(re.match('abc$',text3))
print(re.match('\d\d',text3))

実行結果

<re.Match object; span=(0, 1), match='1'>
None
None
<re.Match object; span=(0, 2), match='12'>

###④text4 = 'a1234'の場合

print(re.match('.',text4))
print(re.match('abc',text4))
print(re.match('abc$',text4))
print(re.match('\d\d',text4))

実行結果

<re.Match object; span=(0, 1), match='a'>
None
None
None

###⑤text5 = 'a1234a567'の場合

print(re.match('\d{2}',text5))
print(re.search('\d{2}',text5))

実行結果

None
<re.Match object; span=(1, 3), match='12'>

###⑥text6 = '住所は123-3456東京都中央区999-9999'の場合

print(re.match('\d{2}',text6))
print(re.search('\d{2}',text6))
print(re.match('\d{3}-\d{4}',text6))
print(re.search('\d{3}-\d{4}',text6))
print(re.search('.\d{3}-\d{4}',text6))

実行結果

None
<re.Match object; span=(3, 5), match='12'>
None
<re.Match object; span=(3, 11), match='123-3456'>
<re.Match object; span=(2, 11), match='は123-3456'>

###⑦text7 = '〒123-1234東京都中央区999-9999'の場合

print(re.match('\d{3}-\d{4}',text7))
print(re.search('\d{3}-\d{4}',text7))
print(re.search('.\d{3}-\d{4}',text7))
print(re.findall('\d{3}-\d{4}',text7))
print(re.findall('\d{3}\d{4}',text7))
print(re.findall('.\d{3}-\d{4}',text7))

実行結果

None
<re.Match object; span=(1, 9), match='123-1234'>
<re.Match object; span=(0, 9), match='〒123-1234'>
['123-1234', '999-9999']
[]
['〒123-1234', '区999-9999']

###⑧text8 = '〒1231234東京都中央区9999999'の場合

print(re.findall('\d{3}\d{4}',text8))

実行結果

['1231234', '9999999']

###⑨text9 = '〒123-1234:東京都:中央区999-9999'の場合

print(re.split('[:]',text9))

実行結果

['〒123-1234', '東京都', '中央区999-9999']

###⑩text10 = '〒123-1234 東京都 中央区:999-9999'の場合

print(re.split('[,]',text9))

実行結果

['〒123-1234:東京都:中央区999-9999']
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?