Saya sedang menyemak semula modul baru-baru ini dan tiba-tiba terfikir soalan ini, iaitu, jika separuh kedua rentetan yang dipadankan menjadi separuh pertama rentetan yang dipadankan seterusnya, bagaimana untuk mencapainya? Contohnya, terdapat rentetan aAFDdADDdDFDsDFS
, dan saya ingin memadankan huruf kecil d, d dan s yang dikelilingi oleh tiga huruf besar Kod saya adalah seperti ini:
import re
rawstring = 'aAFDdADDdDFDsDFS'
reg = r'[^A-Z]*[A-Z]{3}([a-z]+)[A-Z]{3}[^A-Z]*'
pattern = re.compile(reg)
r = pattern.finditer(rawstring)
for s in r:
print(s.group())
Keputusan yang diperolehi adalah seperti berikut:
aAFDdADDd
DFDsDFS
D kedua hilang Apa yang perlu saya lakukan jika saya mahu memadankan d kedua juga? Terima kasih!
r'(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})'