⊗pyPmREHHy 47 of 129 menu

დეფისი ნაკრებების შიგნით პითონის რეგულარულ გამოსახულებებში

დეფისი - ასევე სპეციალური სიმბოლოა [ ]-ის შიგნით (მაგრამ გარეთ - არა). თუ თქვენ გჭირდებათ თავად დეფისი, როგორც სიმბოლო - მაშინ მოათავსეთ იგი იქ, სადაც ის არ აღიქმება, როგორც ჯგუფის გამყოფი.

რატომ არის ეს მნიშვნელოვანი: თქვენ შეგიძლიათ შექმნათ სიმბოლოთა ჯგუფი, თავად ამის შეუმჩნევლად. მაგალითად, აი ასე - '[:-@]' - თქვენ ფიქრობთ, რომ ირჩევთ მრვიწყობილს, დეფისს და @-ს, მაგრამ სინამდვილეში მიიღება სიმბოლოთა ჯგუფი :-სა და @-ს შორის. ამ ჯგუფში შედის შემდეგი სიმბოლოები: ? < = > :

საიდან გაჩნდნენ ისინი? ASCII-ის ცხრილიდან - მრვიწყობილს აქვს ნომერი ნაკლები, ვიდრე @-ს - და მიიღება ჯგუფი. ანუ ყველა ჯგუფი მიიღება ASCII-ის ცხრილის მიხედვით (სურვილის შემთხვევაში ამით შესაძლებელია სარგებლობა).

როგორ ვიბრძოლოთ ამას: მოათავსეთ დეფისის სიმბოლო იქ, სადაც ის ნამდვილად არ აღიქმება როგორც ჯგუფის სიმბოლო, მაგალითად, თავში ან ბოლოში (ანუ [-ის შემდეგ ან ]-ის წინ).

ასევე შესაძლებელია დეფისის ესკაპირება - მაშინ ის აღნიშნავს თავის თავს, მიუხედავად პოზიციისა. მაგალითად, [:-@]-ის ნაცვლად დაწეროთ [:\-@] - და ჯგუფი აღარ იქნება, არამედ იქნება სამი სიმბოლო - მრვიწყობილი, დეფისი და @ @.

მაგალითი

შემდეგ მაგალითში ძიების შაბლონი ასეთია: ციფრი 1, შემდეგ ასო 'a'-დან 'z'-მდე, შემდეგ ციფრი 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

კოდის შესრულების შედეგი:

'! 1-2 ! !'

მაგალითი

ახლა კი ესკაპირება გავუკეთოთ დეფისს. შედეგად ძიების შაბლონი ასეთია: ციფრი 1, შემდეგ ასო 'a', ან დეფისი, ან ასო 'z', შემდეგ ციფრი 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

კოდის შესრულების შედეგი:

'! ! 1c2 !'

მაგალითი

შესაძლებელია უბრალოდ გადაადგილება დეფისის, ესკაპირების გარეშე:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

კოდის შესრულების შედეგი:

'! ! 1c2 !'

მაგალითი

შემდეგ მაგალითში ძიების შაბლონი ასეთია: პირველი სიმბოლო - ეს არის პატარა ასოები ან დეფისი '-', შემდეგ ორი ასო 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

კოდის შესრულების შედეგი:

'! Axx ! @xx'

მაგალითი

შემდეგ მაგალითში ძიების შაბლონი ასეთია: პირველი სიმბოლო - ეს არის პატარა, დიდი ასოები ან დეფისი '-', შემდეგ ორი ასო 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

კოდის შესრულების შედეგი:

'! ! ! @xx'

მაგალითი

შესაძლებელია დეფისის მოთავსება ორ ჯგუფს შორის - იქ ის ნამდვილად აღარ შექმნის კიდევ ერთ ჯგუფს:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

კოდის შესრულების შედეგი:

'! ! ! @xx'

პრაქტიკული ამოცანები

მოცემულია სტრიქონი:

txt = 'xaz xBz xcz x-z x@z'

იპოვეთ ყველა სტრიქონი შემდეგი შაბლონის მიხედვით: ასო 'x', დიდი ან პატარა ასო ან დეფისი, ასო 'z'.

მოცემულია სტრიქონი:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

იპოვეთ ყველა სტრიქონი შემდეგი შაბლონის მიხედვით: ასო 'x', შემდეგ ან დოლარი, ან დეფისი ან პლუსი, შემდეგ ასო 'z'.

ქართული
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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა