Python'до регулярдуу туюнтмаларга киришүү
Регулярдуу туюнтмалар - татаал издөө жана алмаштыруу (же жөн гана издөө) үчүн берилген буйруктар. Алар абдан кызыктуу нерселерди жасашса болот, бирок, тигинесине, үйрөнүүгө бир аз оор.
Python'до регулярдуу туюнтмалар менен иштөөнү баштоо үчүн, бизге атайын re модулун импорттоп алуу керек:
import re
re модулу регулярдуу туюнтмалар менен иштөөгө арналган методдорду камтыйт. Регулярдуу туюнтма эки түрдүү белгилерден турат: өзүн өзү белгилегендерден жана атайын белгилер деп аталган буйрук-белгилерден.
Регулярдуу туюнтмалар менен таанышууну sub методунун мисалында баштоо оңой, ал саптагы алмаштыруулар үчүн колдонулат. Метод биринчи параметр катары эмнени алмаштыруу керектигин, экинчиси - эмне менен алмаштыруу керектигин кабыл алат. Үчүнчү параметрде алмаштыруу жасалышы керек болгон сапты көрсөтөбүз. Төртүнчү милдеттүү эмес параметрде алмаштыруулардын санын белгилейбиз. Бул метод менен эң жөнөкөй алмаштыруу төмөнкүдөй көрүнөт:
res = re.sub('a', '!', 'bab')
print(res) # 'b!b' деп чыгарат
Байкагандарыңардай, регулярдуу туюнтмада тамгалар өздөрүн өздөрү белгилешет. Сандарга да ошол эле ылайык келет. Келгиле, 2 санын ! менен алмаштыралы:
res = re.sub('2', '!', '12abc3')
print(res) # '1!abc3' деп чыгарат
Ал эми чекит атайын символ болуп саналат жана каалаган символду белгилейт. Кийинки мисалда төмөнкүдөй үлгү боюнча субсапты табалы: тамга 'x', андан кийин каалаган символ, андан кийин дагы тамга 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # '! eee' деп чыгарат
Сап берилген:
txt = 'ahb acb aeb aeeb adcb axeb'
Төмөнкү үлгү боюнча 'ahb', 'acb', 'aeb' саптарын таба турган регулярды жазыңыз: тамга 'a', каалаган символ, тамга 'b'.
Сап берилген:
txt = 'aba aca aea abba adca abea'
Төмөнкү үлгү боюнча 'abba', 'adca', 'abea' саптарын таба турган регулярды жазыңыз: тамга 'a', 2 каалаган символ, тамга 'a'.
Сап берилген:
txt = 'aba aca aea abba adca abea'
'adca''ды камтыбастан, 'abba' жана 'abea' саптарын таба турган регулярды жазыңыз.