実現したいこと
アルファベットと数字からなるIDを分割したいです。
たとえば「H1-29H1-02」というIDがあり、これを「アルファベット+数字」、つまり「H1-29」と「H1-02」に分けたいです。
現在、IDは複数の月次ファイルに入力されています。
それを1つのExcelに貼り付けて、重複を削除してから、IDを分割するという作業を行っています。
対象ID(サンプル)
操作対象IDのサンプルです。アルファベットはA~Zまで、数字は2~3桁まであります。
H1-29H1-02
C1-68B1-02
Q1-23A1-02
T1-02T1-02
H1-108P1-02
L1-68Y1-53
C1-109A1-02
・・・
試したこと
####Excel編
「データ」→「区切り位置」で5文字目まで区切り、前半の数字2桁のものをまず抽出。
そこから、後半の文字列のうち数字から始まっているもの(前半が数字3桁のもの)をソートし、1文字目(数字)と後半を抽出。
抽出した数字を前半の文字列と結合し、数字3桁のIDを完成させる。
・・・とやっていきましたが、ファイル数が多いので気が遠くなりそうです。
####Python編
「Python:正規表現で文字列を分割するのがre.split」
https://sigotonosozai.com/2020/10/21/resplit/
上記の記事より、re:splitと正規表現を用いれば、アルファベットで区切れることが分かりました。
ただし区切った文字が消えてしまうので、消さないようにするための処理が分からずに悩んでいます。
該当のソースコード
上記記事より該当箇所を引用しました。区切り文字が消えてしまいます。
python
1 2>>> import re 3>>> umaibo_taste = re.split('[A-Z]','chessANDmentai') 4>>> print(umaibo_taste) 5['chess', '', '', 'mentai']
###知りたいこと
ExcelもしくはPythonを用いて、効率的に文字を区切る方法についてアドバイスをいただければ幸いです。
###動作環境
Excel2016
Python 3.8
を利用しています。
回答3件
あなたの回答
tips
プレビュー