Python 2.6 kullanıyorum ve bir dizede yinelenen karakterleri bulmaya çalışıyorum, bir grup n
'in, örneğin; nnnnnnnABCnnnnnnnnnDEF
. Dizenin herhangi bir yerinde n
'sayısı değişken olabilir.Regex, yalnızca dizenin ortasındaki kalıbı bul
Böyle bir regex inşa edin: Sadece gayet dize, başında harf duyarsız n
's tekrarlarını bulabilirsiniz
re.findall(r'^(((?i)n)\2{2,})', s)
,
. Böyle yaparsam:
re.findall(r'(((?i)n)\2{2,}$)', s)
,
, ben iade listesinin uzunluğunu ve ya ifadenin başındaki ve sonunda n
's varlığını kontrol ve mantıksal testleri yapmak re.findall(r'(((?i)n)\2{2,})', s)
ve önceki iki regex (-ices?) kullanarak düşünce ama çok çabuk çirkin bir şey oldu.
Sonra ben regex sonunda başlayan sadece iyi ama (?!$)
veya (?!\z)
exlude görünüyor sadece ABCnnnn
son n
dışlayan, hangi re.findall(r'(?!^)(((?i)n)\2{2,})', s)
çalıştı. Sonunda, bazen çalışmak gibi görünen re.findall(r'(?!^)(((?i)n)\2{2,})\w+', s)
'u denedim, ancak diğerlerinde garip sonuçlar elde ediyorum. Bir gözüme ya da bakmaya ihtiyacım var gibi geliyor, ama kafamı etraflarına dolamıyorum. n
karakterleri eşleştirmeyi reddetmek için karmaşık bir normal ifade kullanmak yerine,
deneyin [ '(<^?!) ((N) \ 2 {2})' (
((? I) n) \ 1 {2} 'nesi yanlış' https://regex101.com/r/oT6vZ1/1? (?
ya da '\ B (n) (? N) \ 1 {2} \ B ' –