python - Dalam ungkapan biasa, jika separuh kedua rentetan dipadankan menjadi separuh pertama rentetan dipadankan seterusnya, bagaimana untuk melaksanakannya?
给我你的怀抱
给我你的怀抱 2017-06-12 09:27:43
0
1
950

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!

给我你的怀抱
给我你的怀抱

membalas semua(1)
给我你的怀抱

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']
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan