Набори аломатҳо дар Regular Expression-ҳои Python
Гурӯҳҳои аломатҳо \d ва \w
ҳеле созгор нестанд. Ҳатто вазифаи осоне,
монанди ёфтани ҳамаи ҳарфҳо, аммо рақамҳо на -
бо онҳо ҳал карда намешавад. Барои чунин вазифаҳо
бояд қавсҳои чоркунҷаро истифода кард,
ки амалиёти 'ё'-ро ифода мекунанд.
Қавсҳои чоркунҷа як аломатро иваз мекунанд,
ҳар яке аз аломатҳои дар дохил номбаршуда. Масалан,
ба ин тавр: x[abc]x - мо
мегӯем, ки дар канорҳо бояд ҳарфи
икс истода бошад, ва дар дохил - як аломат: ё 'a',
ё 'b', ё 'c'.
Пас аз қавсҳои чоркунҷа операторҳои такрорро
навиштан мумкин аст. Масалан, ба ин тавр:
x[abc]+x - мо мегӯем, ки дар дохили
иксҳо ҳар гуна миқдори аломатҳои
'a', 'b' ва 'c' -
дар ҳар гуна комбинатсия мумкин аст.
На фақат аломатҳоро номбар кардан, балки
гурӯҳҳои аломатҳо сохтан ҳам мумкин аст,
барои ин бо дефиз миёни ду аломат навиштан.
Масалан, ба ин тавр: [a-d] - мо
ҳамаи аломатҳоро аз
'a' то 'd' мегирем.
Биёед ба мисолҳо назар кунем.
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна ҳарф аз
'a' то 'z':
txt = 'xax xbx xcx x@x'
res = re.sub('x[a-z]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна ҳарф аз
'a' то 'k':
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! xmx x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна ҳарф аз
'A' то 'Z':
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xax ! xcx x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна рақам аз 0
то 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xax ! ! ! x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна рақам аз 3
то 7:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xax x1x ! ! x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна ҳарф аз
'a' то 'z' ё рақам аз
1 то 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! ! x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна ҳарф аз
'a' то 'z' ё ҳарф аз
'A' то 'Z':
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! x5x x@x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳар гуна ҳарф аз
'a' то 'z' ё рақамҳои 1,
2:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! ! x3x'
Мисол
Дар ин мисол намунаи ҷустуҷӯ инҳоянд:
байни иксҳо ҳарфҳо аз 'a'
то 'z' бо миқдори аз 1 ва
бештар:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xx ! ! ! x123x xa3x'
Мисол
Биёед чунон кунем, ки миқдори ҳарфҳо ҳам сифр бошад:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
Дар натиҷа мо хоҳем гирифт:
'! ! ! ! x123x xa3x'
Мисол
Дар дохили қавсҳои чоркунҷа аломатҳои экраниро ҳам нишон додан мумкин аст. Биёед пайдарпаии ҳарфҳо ва рақамҳоро, бо такрори сифр ё бештар пайдо кунем:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! x@x ! ! !'
Мисол
Агар ба мо қавсҳои чоркунҷаи дигареро нишон додан лозим бошад, пас албатта онҳоро ҳам экран мекунем:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! x3x'
Вазифаҳои амалӣ
Сатр дода шудааст:
txt = 'aba aea aca aza axa'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарфи 'b',
'e' ё 'x'.
Сатр дода шудааст:
txt = 'a1a a3a a7a a9a aba'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - рақам аз
3 то 6.
Сатр дода шудааст:
txt = 'aba aea afa aha aga'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарф аз
'a' то 'g'.
Сатр дода шудааст:
txt = 'aba aea afa aha aga'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарф аз
'a' то 'f' ва аз 'j'
то 'z'.
Сатр дода шудааст:
txt = 'aAa aea aEa aJa a3a'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарф аз
'a' то 'f' ва аз 'A'
то 'D'.
Сатр дода шудааст:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарфҳои
хурди лотинӣ, ба дигарон такон назанад.
Сатр дода шудааст:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарфҳои
хурд ва калони лотинӣ, ба дигарон такон назанад.
Сатр дода шудааст:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Regular Expression-е нависед, ки аз рӯи
намунаи зерин пайдо кунад: дар канорҳо ҳарфи
'a' истода бошад, ва байни онҳо - ҳарфҳои
хурди лотинӣ ва рақамҳо, ба дигарон такон назанад.