これは私が実行しているものより簡単でなければなりません。私の問題は、次のような文字列を回すことです。
ABC12DEF3G56HIJ7
に
12 * ABC
3 * DEF
56 * G
7 * HIJ
そして、私は一生、REGEXマッチングを使用してループの正しいセットを設計することはできません。問題の核心は、[A-Z]
フラグメントは、また[0-9]
フラグメントになります。
ご協力ありがとうございます!
Pythonのre.findall
はあなたのために働くはずです。
import re
s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')
for (letters, numbers) in re.findall(pattern, s):
print(numbers, '*', letters)
データセットが大きい場合は、 re.finditer を使用することをお勧めします。
import re
s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')
for m in re.finditer(pattern, s):
print m.group(2), '*', m.group(1)