⊗pyPmRELAB 72 of 129 menu

Исботкунии мусбат ва манфӣ дар регуляриҳои Python

Гаҳего бояд масъалаи аз ин навъро ҳал кард: сатрро 'aaa' ёфта ба '!' иваз кунад, аммо танҳо агар паси 'aaa' 'x' истода бошад, ва худи 'x'-ро иваз накунад. Агар мо бихоҳем масъаларо 'рост' ҳал кунем, ҳеҷ чиз ба даст нахоҳем овард:

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # '! baaa'-ро бармегардонад, амо '!x baaa'-ро мехостанд

Исботкунии пеш

Барои ҳалли масъала роҳе лозим аст, ки бигӯяд, ки 'x'-ро набояд иваз кард. Ин кор бо истифода аз қафсҳои вижаи (?= ) анҷом дода мешавад, ки танҳо мебинанд, вале бо худ намебаранд.

Ин қафсҳо исботкунии мусбати пеш номида мешаванд. Мусбат - зеро ки 'x' (дар ҳолати мо) бояд ҳаст - ҳамон вақт иваз карда мешавад.

Биёед ин қафсҳоро барои ҳалли масъалаи мо истифода кунем:

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # '!x aaab'-ро бармегардонад

Исботкунии манфии пеш низ вуҷуд дорад - (?! ) - он, баръакс, мегӯяд, ки чизие бояд набошад. Дар мисоли оянда, иваз кардан сурат мегирад, танҳо агар баъд аз 'aaa' НЕ 'x' истода бошад:

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # 'aaax !b'-ро бармегардонад

Исботкунии ақиб

Ҳамин тавр исботкунии мусбати ақиб вуҷуд дорад - (?<= ). Дар мисоли оянда иваз кардан сурат мегирад, танҳо агар пеш аз 'aaa' 'x' истода бошад:

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # 'x!'-ро бармегардонад

Ва исботкунии манфии ақиб низ вуҷуд дорад - (?. Дар мисоли оянда иваз кардан сурат мегирад, танҳо агар пеш аз 'aaa' 'x' истода набошад:

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # 'b!'-ро бармегардонад

Масъалаҳои амалӣ

Сатр дода шудааст, ки номҳои функсияҳоро дар бар мегирад:

txt = 'func1() func2() func3()'

Массиви номҳои функсияҳоро аз сатр гиред.

Сатр бо тег дода шудааст:

txt = '<a href="" class="eee" id="zzz">'

Массиви номҳои сифатҳои ин тегро гиред.

Сатр бо тағирёбандаҳо дода шудааст:

txt = '$aaa $bbb $ccc xxxx'

Зерсатрҳоеро гиред, ки пеш аз онҳо аломати доллар истода бошад.

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