

## スクレイピングしたデータから文字列を取り出そうとしているのですが、正規表現の書き方がわかりません。

[code]

    import requests
    import re
    import pandas as pd
    from bs4 import BeautifulSoup
    
    response = requests.get("https://db.netkeiba.com/horse/2012104511/")
    response.encoding = response.apparent_encoding
    html = response.text
    soup = BeautifulSoup(html, "lxml")
    
    race_id_list = []
    race_a_list = soup.find("table", attrs={"class": "db_h_race_results nk_tb_common"}).find_all(
        "a", attrs={"href": re.compile("^/race/20")})
    
    for a in race_a_list:
        race_id = re.findall(r"\d+", a["href"])
        race_id_list.append(race_id[0])
    
    print(race_a_list)
    print(race_id_list)
    
[/code]

このコードを実行したときに`print(race_a_list)`で出力されたもの:

[code]

    [<a href="/race/list/20160626/">2016/06/26</a>, <a href="/race/sum/09/20160626/">3阪神8</a>, <a href="/race/201609030811/" title="宝塚記念(G1)">宝塚記念(G1)</a>, <a href="/race/movie/201609030811" target="_blank" title="宝塚記念(G1)の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20160326/">2016/03/26</a>, <a href="/race/sum/C7/20160326/">アラブ首</a>, <a href="/race/2016C7a00708/" title="ドバイシーマクラシッ(G1)">ドバイシーマクラシッ(G1)</a>, <a href="/race/list/20160228/">2016/02/28</a>, <a href="/race/sum/06/20160228/">2中山2</a>, <a href="/race/201606020211/" title="中山記念(G2)">中山記念(G2)</a>, <a href="/race/movie/201606020211" target="_blank" title="中山記念(G2)の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20150531/">2015/05/31</a>, <a href="/race/sum/05/20150531/">2東京12</a>, <a href="/race/201505021210/" title="東京優駿(G1)">東京優駿(G1)</a>, <a href="/race/movie/201505021210" target="_blank" title="東京優駿(G1)の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20150419/">2015/04/19</a>, <a href="/race/sum/06/20150419/">3中山8</a>, <a href="/race/201506030811/" title="皐月賞(G1)">皐月賞(G1)</a>, <a href="/race/movie/201506030811" target="_blank" title="皐月賞(G1)の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20150215/">2015/02/15</a>, <a href="/race/sum/05/20150215/">1東京6</a>, <a href="/race/201505010611/" title="共同通信杯(G3)">共同通信杯(G3)</a>, <a href="/race/movie/201505010611" target="_blank" title="共同通信杯(G3)の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20150201/">2015/02/01</a>, <a href="/race/sum/05/20150201/">1東京2</a>, <a href="/race/201505010209/" title="セントポーリア賞(500万下)">セントポーリア賞(500万下)</a>, <a href="/race/movie/201505010209" target="_blank" title="セントポーリア賞(500万下)の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20141108/">2014/11/08</a>, <a href="/race/sum/05/20141108/">5東京1</a>, <a href="/race/201405050104/" title="2歳未勝利">2歳未勝利</a>, <a href="/race/movie/201405050104" target="_blank" title="2歳未勝利の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>, <a href="/race/list/20141012/">2014/10/12</a>, <a href="/race/sum/05/20141012/">4東京2</a>, <a href="/race/201405040205/" title="2歳新馬">2歳新馬</a>, <a href="/race/movie/201405040205" target="_blank" title="2歳新馬の映像"><img border="0" src="/style/netkeiba.ja/image/icon_douga.png"/></a>]
    
[/code]

このコードを実行したときに`print(race_id_list)`で出力されたもの:

['201609030811', '2016', '201606020211', '201505021210', '201506030811',
'201505010611', '201505010209', '201405050104', '201405040205']

* * *

求めている`print(race_id_list)`の実行結果は結果は以下のものです。

['201609030811', '2016C7a00708', '201606020211', '201505021210',
'201506030811', '201505010611', '201505010209', '201405050104',
'201405040205']

上の例から'2016C7a00708'を正規表現で取り出すには、`race_id = re.findall(r"\d+",
a["href"])`の`"\d+"`の部分をどのように書いたらいいのかわかりません。  
アドバイスいただけますと幸いです。

Python 3.8.8


CC BY-SA 4.0
2021-09-08T06:29:06.900
82339
2021-09-08T06:38:39.463
42436
question
python 正規表現
正規表現で特定の文字の後ろにある数字だけでなく、数字を含む12桁の文字列を取り出したいです


数字とアルファベット小文字・大文字なら`[\da-zA-Z]+`  
かつ12文字のパターンに限定したいなら`[\da-zA-Z]{12}`


CC BY-SA 4.0
2021-09-08T06:38:39.463
82340
2021-09-08T06:38:39.463
45045
82339
answer