Nyşanlaryň gaýtalanmagynyň operatorlary
Nyşanyň bellenen mukdarda gaýtalanýandygyny görkezmeli bolýan ýagdaýlar hem bar.
Gaýtalanyş sany anyk bolmasa, onda ony diňe birnäçe gezek ýazyp bolar
- 'aaaa'. Ýöne şeýle diýilmeli bolsa näme etmeli: bir ýa-da birnäçe gezek gaýtala?
Bunun üçin gaýtalanyş operatorlary (kwantifikatorlar) bar: goşmaça + (bir ýa-da birnäçe gezek),
ýyldyz * (nölden birnäçe gezek) we sorag ? (nöl ýa-da bir gezek).
Bu operatorlar öňlerinde duran nyşanyň üstünde täsir edýärler.
Geliň bu operatorlaryň işini mysallarda görkezeliň.
Mysal
Nyşan 'x', nyşan 'a' bir ýa-da birnäçe gezek, nyşan 'x' şablony boýunça ähli aşak setirleri tapalyň:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Koduň ýerine ýetiriliş netijesi:
'xx ! ! ! xbx'
Mysal
Nyşan 'x', nyşan 'a' nöl ýa-da birnäçe gezek, nyşan 'x' şablony boýunça ähli aşak setirleri tapalyň:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Koduň ýerine ýetiriliş netijesi:
'! ! ! ! xbx'
Mysal
Nyşan 'x', nyşan 'a' nöl ýa-da bir gezek, nyşan 'x' şablony boýunça ähli aşak setirleri tapalyň:
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Koduň ýerine ýetiriliş netijesi:
'! ! xaax xbx'
Amaly meseleler
Setir berlen:
txt = 'aa aba abba abbba abca abea'
Nyşan 'a', nyşan 'b' islendik mukdarda, nyşan 'a' şablony boýunça
'aba', 'abba', 'abbba' setirlerini tapjak regulýar ifadäni ýazyň.
Setir berlen:
txt = 'aa aba abba abbba abca abea'
Nyşan 'a', nyşan 'b' islendik mukdarda (hatda nöli gezekem), nyşan 'a' şablony boýunça
'aa', 'aba', 'abba', 'abbba' setirlerini tapjak regulýar ifadäni ýazyň.
Setir berlen:
txt = 'aa aba abba abbba abca abea'
Nyşan 'a', nyşan 'b' bir gezek ýa-da hiç gezek, nyşan 'a' şablony boýunça
'aa', 'aba' setirlerini tapjak regulýar ifadäni ýazyň.
Setir berlen:
txt = 'aa aba abba abbba abca abea'
'abca' we 'abea' setirlerini almasdan,
'aa', 'aba', 'abba', 'abbba' setirlerini tapjak regulýar ifadäni ýazyň.