Aşağıdaki örnekte olduğu gibi tüm yorumları ayıklamanın bir yolunu bulamıyorum. two -- --
ileİki dizge arasında eşitleme eşleşmesi?
>>> import re
>>> string = '''
... <!-- one
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ('<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']
blok nedeniyle kötü regex en olası eşleşmeyen. Birisi iki dize arasındaki eşleşmeleri nasıl doğrulamak için bana doğru yönde işaret edebilir.
Merhaba, yorumlarda önerdiğin şeyleri test ettim ... işte burada küçük bir yükseltme ile çalışıyoruz.
>>> m = re.findall ('<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ('<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']
Teşekkürler!
[] arasındaki tek bir karakter tek bir karakterdir, yani (>>) bu gruplama soruna bir bakmaz ... –
're.findall ('', string, re.DOTALL)' gerekir yap. Buraya '^ \ (->)' gerek yok, çünkü soru işareti açgözlü değil. – BrtH
Sadece kelimeleri mi arıyorsun? Eğer öyleyse, m = re.findall ('[\ w] +', string, re.MULTILINE) 'ile ilgili sorun nedir? Ayrıca, dize, dize için gerçekten kötü bir isim. – Ben