reモジュールについて
基本知識
urllib.request.urlopenが返すオブジェクトはbyte型である。reモジュールはbyteではなくstr型でなければならない。read( )をつかうことでbyteからstrに変換することができる。
reモジュールの使い方イメージ
- まずはターゲットにしたいパターンを定める。
- それをre.compile( )を使って正規表現オブジェクトに変換する。
- 正規表現オブジェクトに対するメソッドを使う。
- 一部のメソッドはマッチオブジェクトと呼ばれるオブジェクトが返ってくるので、それに対しては更にメソッドを使ってマッチオブジェクトの持つ情報を取り出す。
#文字列"123gejsorSAHkw"のうちAを文字列から排除したい
import re
moji = "123gejsorSAHkw"
PATTERN = "A" #1.パターンを定める
regex = re.compile(PATTERN) #2.正規表現オブジェクトに変換
new_moji = regex.sub("",moji) #3.上記オブジェクトに対するメソッド使用
print(new_moji)
123gejsorSHkw
パターンを正規表現に変換するメソッド
- re.compile( )
正規表現オブジェクトに対するメソッド
- findall( )
- split( )
- sub( )
- finditer( )
- search( )...マッチオブジェクトを返す
- match( )...マッチオブジェクトを返す
マッチオブジェクトに対するメソッド
- group( )...マッチした文字列を返す
- groups( )...グループをすべて返す
- start( )
- end( )
JPEGの正規表現の取得
r'"(https?://[a-zA-Z0-9:/.=_\-]*jpg|jpeg|JPG|JPEG)"'
下が参考になった。
取得したHTMLからJPEGファイルのリンク先を取得
複数の要素をパターンに定めたいとき
今までPATTERN = "hoge"とやっていたけど、その他の文字列も扱いと思うときには|を使うと良い。
PATTERN = "hoge|foo"
こうすれば良い。