Rumah > Soal Jawab > teks badan
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!
给我你的怀抱2017-06-12 09:29:43
r'(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})'
>>> import re
>>> rawstring = 'aAFDdADDdDFDsDFS'
>>> reg = r'(?<=[A-Z]{3})([a-z])(?=[A-Z]{3})'
>>> pattern = re.compile(reg)
>>> pattern.findall(rawstring)
['d', 'd', 's']