Rumah  >  Soal Jawab  >  teks badan

python - Dalam ungkapan biasa, jika separuh kedua rentetan dipadankan menjadi separuh pertama rentetan dipadankan seterusnya, bagaimana untuk melaksanakannya?

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!

给我你的怀抱给我你的怀抱2686 hari yang lalu921

membalas semua(1)saya akan balas

  • 给我你的怀抱

    给我你的怀抱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']

    balas
    0
  • Batalbalas