⊗pyPmREChS 40 of 129 menu

Python регуляр ифодалардаги белгилар тўплами

Белгилар гуруҳи \d ва \w жуда мусбат эмас. Ҳатто барча ҳарфларни топинг, лекин рақамларни эмас - каби оддий вазифа ҳам улар томонидан ҳал килина олмайди. Бундай вазифалар учун 'ёки' амалиётини ифодаловчи қавс ишлатиш керак.

Қавс ичида кўрсатилган ҳар қандай битта белгини алмаштиради. Масалан, шундай: x[abc]x - биз чекларда харфлари туршиси керак, ва ичида - битта белги: ёки 'a', ёки 'b', ёки 'c'.

Қавсдан кейин такрорлаш операторларини ёзиш мумкин. Масалан, шундай: x[abc]+x - биз ичда ҳар қандай миқдордаги белгилар бўлиши мумкин деймиз 'a', 'b' ва 'c' - ҳар қандай комбинацияда.

Фақат белгиларни рўйҳатдан ўтказиш эмас, балки икки белги ўртасига чизиқча қўйиш орқали белгилар гуруҳларини яратиш мумкин. Масалан, шундай: [a-d] - биз ҳамма белгиларни оламиз 'a' дан 'd' гача.

Келгила, мисолларда кўрамиз.

Мисол

Ушбу мисолда қидириш намунаси шундай кўринади: х лари ўртасида ҳар қандай ҳарф 'a' дан 'z' гача:

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Кодни бажариш натижаси:

'! ! ! 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'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - 'b', 'e' ёки 'x' ҳарфи.

Берилган сатр:

txt = 'a1a a3a a7a a9a aba'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - 3 дан 6 гача рақам.

Берилган сатр:

txt = 'aba aea afa aha aga'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - 'a' дан 'g' гача ҳарф.

Берилган сатр:

txt = 'aba aea afa aha aga'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - 'a' дан 'f' гача ва 'j' дан 'z' гача ҳарф.

Берилган сатр:

txt = 'aAa aea aEa aJa a3a'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - 'a' дан 'f' гача ва 'A' дан 'D' гача ҳарф.

Берилган сатр:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - кичик латин ҳарфлари, бошқаларига тегмай.

Берилган сатр:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - кичик ва катта латин ҳарфлари, бошқаларига тегмай.

Берилган сатр:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Куйидаги намуна бўйича топадиган регуляр ифодани ёзинг: чекларида ҳарфлар 'a' туради, ва улар ўртасида - кичик латин ҳарфлари ва рақамлар, бошқаларига тегмай.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш