როგორ დავიწყოთ Regex-ის გამოყენება მალსახმობების აპლიკაციით

click fraud protection

ბოლო ერთი თვის განმავლობაში, მე ვაშუქებდი Shortcuts და Automator აპებს iOS-ზე და macOS-ზე, შესაბამისად. ორივე ძლიერია, როდესაც საქმე ეხება Apple-ის ეკოსისტემაში ავტომატიზაციას და დაწყებული macOS Monterey-ით ამ შემოდგომაზე, Shortcuts იქნება ავტომატიზაციის აპი ყველა Apple მოწყობილობაზე. სწორედ ამიტომ მინდოდა ამ სტატიის განხილვა ძალიან ძლიერი თემის განხილვაში: Regex-ის გამოყენება Shortcuts აპით.

მიუხედავად იმისა, რომ მე მაქვს გარკვეული გამოცდილება კომპიუტერულ მეცნიერებაში და პროგრამირებაში, რატომღაც არასდროს შემხვედრია regex. შესაძლოა ამ სახელმა შემაშინა, ან შესაძლოა ეს იყო კოდი, რომელიც ყველაზე ნაკლებად იკითხებადი კოდია, რაც კი ოდესმე მინახავს.

როგორიც არ უნდა იყოს საქმე, გადავწყვიტე შემეხედა regex-ში მას შემდეგ, რაც ბოლო რამდენიმე თვის განმავლობაში მალსახმობების აპი გავაშუქე. და რაც აღმოვაჩინე ის იყო, რომ ბევრი შეზღუდვა, რომელსაც მე ვაწყდებოდი Shortcuts-ის, ისევე როგორც Automator-ით, შეიძლება გადალახულიყო რეგექსით.

სხვა სიტყვებით რომ ვთქვათ, ეს არ იყო ის, რომ ამ აპებს აკლდათ ფუნქციები, არამედ ის, რომ მე მქონდა განათლება.

ასე რომ, დღევანდელ პოსტში მე და შენ ერთად ვაპირებთ ვისწავლოთ რეგექსის დეტალები. ამ გზით, თქვენ შეგიძლიათ მიიღოთ მაქსიმალური სარგებლობა თითოეული ამ აპიდან.

ჩვენ ვაპირებთ გავაშუქოთ რეგექსის საფუძვლები (დაწყებული რა არის), რა შეგიძლიათ გააკეთოთ მასთან Shortcuts აპლიკაციაში, ზოგიერთ ვებსაიტზე და რესურსები, რომლებიც შეგიძლიათ გამოიყენოთ, თუ არ გსურთ რეგექსის სწავლა, შემდეგ კი ჩვენ გადავალთ რეგექსის ძირითად კონცეფციებსა და მექანიზმებზე ენა.

კარგი, დავიწყოთ!

შინაარსი

  • რა არის რეგულარული გამონათქვამები (მაგ., რეგექსი)?
    • რა შეგიძლიათ გააკეთოთ რეგექსით
  • როგორ შეგიძლიათ გამოიყენოთ regex მალსახმობების აპით?
  • გამოიყენეთ regex101.com თქვენი რეგულარული გამონათქვამების შესამოწმებლად
  • თუ არ გსურთ ისწავლოთ რეგექსის გამოყენება Shortcuts აპით, წაიკითხეთ ეს
  • Regex დამწყებთათვის: დაიწყეთ regex-ის გამოყენება მალსახმობებით
    • რა არის რეგექსის არომატები?
    • ვებსაიტები და ცნობები, რომლებიც დაგეხმარებათ დაიწყოთ რეგექსის სწავლა მალსახმობებით
    • როგორ შეასრულოთ ძირითადი ტექსტის ძებნა რეგექსის გამოყენებით მალსახმობებით
    • ცვლადი კომპონენტების დამატება თქვენს რეგექსის ძიებაში
    • დიაპაზონებს შეუძლიათ გააფართოვონ თქვენი ძებნა
    • როგორ გამოვრიცხოთ სიტყვები და სიმბოლოები თქვენი რეგექსის ძიებებიდან მალსახმობებით
    • Wildcards-ს შეუძლია მოგაწოდოთ ძიების მეტი ვარიანტი
    • გამოიყენეთ რაოდენობები, რათა მიუთითოთ ტექსტის სიგრძე, რომელსაც ეძებთ
    • არის კიდევ რამდენიმე რაოდენობრივი მაჩვენებელი, რომელთა შესახებაც გსურთ იცოდეთ
    • მოძებნეთ სიმბოლოები ტექსტის სტრიქონის დასაწყისში და ბოლოს
    • შეინახეთ ტექსტური სტრიქონები რეგექსის დაჯგუფების ფუნქციის გამოყენებით მალსახმობებით
  • Ახლა რა?
    • როგორ დაარღვიე ეს?
  • დაიწყეთ regex-ის გამოყენება Shortcuts-ით თქვენი ავტომატიზაციის შემდეგ საფეხურზე ასასვლელად
    • დაკავშირებული პოსტები:

რა არის რეგულარული გამონათქვამები (მაგ., რეგექსი)?

რეგულარული გამოთქმა, ან „regex“, არის კოდი, რომელიც შეგიძლიათ გამოიყენოთ ტექსტის უფრო დიდი ნაწილის შიგნით მოსაძებნად.

თუ არ იცით, ტექსტის ნაწილს სხვა ტექსტში ეწოდება "სტრიქონი" პროგრამირებაში. მაგალითად, სიტყვა "მწვანე" არის სიმბოლოების სტრიქონი ტექსტიდან "დღეს მწვანე შარვალი ჩავიცვი".

ასე რომ, სხვაგვარად რომ ვთქვათ, regex არის გზა, რათა იპოვოთ ტექსტის სტრიქონი უფრო დიდ ტექსტში. და რადგან regex იწერება კოდით, შეგიძლიათ გამოიყენოთ იგი საკმაოდ რთული ოპერაციების შესასრულებლად.

მაგალითად, თუ გსურთ მოძებნოთ სიტყვა „ელფოსტა“, შეგიძლიათ მარტივად დაწეროთ რეგექსის კოდი, რომელიც ეძებს ელფოსტას.

თუ გსურთ იპოვოთ ელფოსტა, რომელიც არის აბზაცის შიგნით და არ იცით ზუსტად რა არის ეს ელფოსტა, მაშინ მოგიწევთ მოძებნოთ ტექსტის სტრიქონი, რომელიც ფორმატირებულია ელფოსტის სახით. ანუ სტრიქონი, რომელიც მიჰყვება "[ელფოსტა დაცულია]” ფორმატში.

ახლა, ვთქვათ, რომ თქვენ არა მხოლოდ გსურთ იპოვოთ ერთი ელ.წერილი აბზაციდან, არამედ ყოველი ელ. იქნებ გსურთ სწრაფად დააკოპიროთ ისინი სადმე სხვაგან, განაახლოთ ისინი ახალ ფორმატში ან შეცვალოთ ისინი ისე, რომ ყველამ თქვას "[ელფოსტა დაცულია]“.

რაც უფრო დახვეწილი და გამოცდილების მიღებას განიჭებთ რეგექსით, თქვენ შეძლებთ ამ ყველაფრის გაკეთებას და მეტის გაკეთებას.

რა შეგიძლიათ გააკეთოთ რეგექსით

კარგი, ასე რომ, შესაძლოა მაგალითები ელექტრონული ფოსტით, რომელიც ახლახან მოვიყვანე, არც ისე პრაქტიკული იყოს. არ ინერვიულოთ - ეს შორს არის იმ ზღვრისგან, რისი მიღწევაც შეგიძლიათ მალსახმობების აპის გამოყენებით regex-ის გამოყენებით.

ზოგადად რომ ვთქვათ, ყველაფერი, რისი გაკეთებაც რეგექსს შეუძლია, მიეკუთვნება ამ ოთხი კატეგორიიდან ერთ-ერთს:

  1. იპოვეთ ტექსტის სტრიქონი უფრო დიდ ტექსტში (ანუ ტექსტის გვერდზე სიტყვის/სტრიქონის/სტრიქონის ტიპის ძიება).
  2. დაადასტურეთ, რომ ტექსტის სტრიქონი ემთხვევა თქვენს სასურველ ფორმატს (მაგ., შეამოწმეთ, რომ ტექსტის სტრიქონი არის კაპიტალიზირებული/დაწესრიგებული/პუნქტუირებული).
  3. შეცვალეთ ან ჩადეთ ტექსტი ტექსტის კონკრეტულ არეალში.
  4. გაყავით ტექსტის სტრიქონი მითითებულ წერტილებზე (მაგ., გაყავით ტექსტის ნაწილი ყოველ ჯერზე, როცა მძიმით არის).

სიღრმის დონე, რომელიც შეგიძლიათ გამოიყენოთ თითოეულ ამ ტიპის ფუნქციასთან ურთიერთობისთვის და როგორ შეგიძლიათ მათი კომბინირება, აქცევს რეგექსს წარმოუდგენლად მძლავრ ინსტრუმენტად ტექსტის ანალიზსა და მანიპულირებისთვის.

როგორ შეგიძლიათ გამოიყენოთ regex მალსახმობების აპით?

კარგი, ახლა თქვენ იმედია გაქვთ ძირითადი წარმოდგენა იმის შესახებ, თუ რისთვის გამოიყენება რეგექსი. ეს არის კოდის ტიპი, რომელიც შეგიძლიათ გამოიყენოთ ტექსტის მოსაძებნად, მაშინაც კი, თუ ზუსტად არ იცით რა არის ეს ტექსტი.

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

თქვენ შეგიძლიათ გამოიყენოთ regex მალსახმობებით, რათა შეამოწმოთ შეყვანის სისწორე. მაგალითად, თუ შექმნით მალსახმობს, რომელიც მუშაობს მხოლოდ URL-ებით, შეგიძლიათ გამოიყენოთ regex მალსახმობის დასაწყისში, რათა დარწმუნდეთ, რომ მომხმარებელი აწარმოებს ავტომატიზაციას URL-ზე.

თქვენ შეგიძლიათ დააკავშიროთ რეგექსი სკრიპტირებასთან ძლიერი მალსახმობების შესაქმნელად. Მაგალითად, ეს მალსახმობი იყენებს რეგექსს და სკრიპტირებას, რათა შტრიხკოდი გადააქციოს თქვენი საყვარელი მაღაზიის URL-ად.

მალსახმობების აპის გამოყენებისას Mac-ზე (მოვა 2021 წლის შემოდგომაზე), შეგიძლიათ გამოიყენოთ regex ტექსტის ნაჭერზე ჯგუფური მოქმედებების შესასრულებლად. მაგალითად, თქვენ შეგიძლიათ დააკოპიროთ ყველა ელ.წერილი ტექსტის არჩევაში, როგორც შეკვეთილი სია. ან, შეგიძლიათ შეცვალოთ ყველა სახელი დოკუმენტში "*" სიმბოლოებით, რათა უზრუნველყოთ კონფიდენციალურობა.

თქვენ კი შეგიძლიათ დააკოპიროთ ტექსტის ნაწილი ერთი აპლიკაციიდან, გადაფორმატოთ იგი სხვა აპის პრეფერენციებთან შესატყვისად და შემდეგ ჩასვათ სხვა აპში, ეს ყველაფერი ერთი მაუსის მარჯვენა დაწკაპუნებით.

სხვა სიტყვებით რომ ვთქვათ, regex გაძლევთ სრულ კონტროლს Shortcuts აპით ტექსტის დამუშავებაზე. ეს შეიძლება თავიდან არ ჟღერდეს ძალიან სასარგებლო, მაგრამ ახლა, როცა იცით, რომ არსებობს, აუცილებლად შეამჩნევთ, თუ რამდენი მალსახმობის გაუმჯობესება შეიძლება ამ ფუნქციით. თქვენ ასევე შეამჩნევთ, რომ ბევრი მალსახმობი რეგექსის გარეშეც კი შეუძლებელია.

გამოიყენეთ regex101.com თქვენი რეგულარული გამონათქვამების შესამოწმებლად

როგორც კი დაიწყებთ რეგექსის გამოყენებას მალსახმობებით, იმედგაცრუების წერტილს წააწყდებით:

ნამდვილად რთულია თქვენი რეგექსის კოდის შემოწმება. და ეს არ არის უნიკალური რეგექსისთვის. რაიმეს ტესტირება Shortcuts აპლიკაციით ერთგვარი ტკივილია. ამის გაკეთების ერთადერთი გზა არის Shortcut-ის გაშვება. ეს მეთოდი არ არის ცუდი, როდესაც თქვენ მხოლოდ ჩაშენებულ მალსახმობების ფუნქციებს ამოწმებთ.

მაგრამ კოდის შესამოწმებლად, ეს არ იძლევა სტრიქონში შემოწმებას და არ გვთავაზობს უამრავ გამოხმაურებას.

ამისათვის მე გირჩევთ გამოიყენოთ regex101.com. ეს არის საიტი, სადაც შეგიძლიათ რეალურ დროში ჩაწეროთ რეგექსის კოდი. თქვენ ასევე შეგიძლიათ აკრიფოთ ტექსტი ტექსტურ რედაქტორში იმავე ვებგვერდზე. თითოეულის აკრეფისას დაინახავთ მუშაობს თუ არა თქვენი რეგექსი, რატომ მუშაობს ან არ მუშაობს და მიიღებთ ინფორმაციას ნაპოვნი შესატყვისების შესახებ.

regex101.com იყენებს regex-ის განსხვავებულ გემოს, ვიდრე მალსახმობების მხარდაჭერილი (მეტი ერთ წუთში), მაგრამ ის საკმაოდ ახლოსაა, რომ არ შეგექმნათ ძალიან ბევრი პრობლემა.

ამ ხელსაწყოს გამოყენება შესანიშნავია, რადგან თქვენ შეგიძლიათ დაწეროთ თქვენი რეგექსი ჯერ იქ, შემდეგ დააკოპიროთ მალსახმობების აპში, როგორც კი ის იმუშავებს დანიშნულებისამებრ.

თუ არ გსურთ ისწავლოთ რეგექსის გამოყენება Shortcuts აპით, წაიკითხეთ ეს

მე მესმის - ყველას არ სურს ისწავლოს რეგექსის გამოყენება Shortcuts-ით. ეს არის უნარი და ეს ნიშნავს, რომ მას დრო და პრაქტიკა დასჭირდება. ის არც ისე მარტივია, როგორც Shortcuts აპის დანარჩენი ფუნქციები, გადაათრიეთ და ჩამოაგდეთ.

Არაფერია სანერვიულო! მიუხედავად იმისა, რომ თქვენ ვერ შეძლებთ იმდენი სარგებლობის მიღებას Shortcuts აპიდან, როგორც ვინმე, ვინც დრო დაუთმობს რეგექსის სწავლას, თქვენთვის ჯერ კიდევ არსებობს ვარიანტები. კერძოდ, არის ონლაინ საიტები და გვერდები, სადაც ადამიანებმა შექმნეს რეგექსის კოდის ნაკბენების სია, რომელიც შეგიძლიათ დააკოპიროთ და ჩასვათ Shortcuts აპლიკაციაში.

აქ არის რამდენიმე ბმული, რომ ნახოთ, თუ არ გსურთ რეგექსის სწავლა:

  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
  • https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
  • https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
  • http://www.rexegg.com/regex-cookbook.html

უბრალოდ წაიკითხეთ ეს ბმულები და თქვენ უნდა შეგეძლოთ იპოვოთ საერთო რეგექსის გადაწყვეტილებები იმ მალსახმობების შესახებ, რომელთა შექმნაც გსურთ. ეს არ იქნება განათლების გარეშე ვარიანტი, რადგან ცოტა დრო დასჭირდება იმის გაგებას, რასაც თქვენ უყურებთ. მაგრამ ეს ბევრად უფრო მარტივი და იდეალური გადაწყვეტაა მათთვის, ვისაც არ აქვს დრო რეგექსის დასაყენებლად.

როგორც ვთქვი, უნდა ვაღიარო, რომ რეგექსის სწავლა არც ისე რთულია, განსაკუთრებით თუ გაქვთ გარკვეული გამოცდილება shell კოდის ან დამწყებთათვის პროგრამირების შესახებ. Regex თავიდან სისულელედ მეჩვენებოდა, მაგრამ სტატიების წაკითხვისა და regex101.com-თან თამაშის ერთი საათის შემდეგ, შევძელი დამეწყო რეგექსის წერა ჩემი Shortcuts-ისთვის.

ეს უბრალოდ ნაცნობობაა - მას შემდეგ რაც საკმარისად დიდხანს შეხედავთ, ის აღარ გამოიყურება ასე უცნაურად. ასე რომ, თუ დრო გაქვთ და უბრალოდ გეშინიათ, ნუ იქნებით!

Regex დამწყებთათვის: დაიწყეთ regex-ის გამოყენება მალსახმობებით

კარგი, საკმარისი წინასიტყვაობა! თქვენ უნდა გქონდეთ წარმოდგენა იმაზე, თუ რა არის რეგექსი, რისი გაკეთება შეუძლია მას, რატომ უნდა ისწავლოთ იგი და საკმარისი ინფორმაცია გადაწყვიტოთ, გსურთ თუ არა მისი სწავლა. ახლა ჩვენ ვაპირებთ შეღწევას წვრილმანებში.

ქვემოთ ბევრი შინაარსია, მაგრამ არ ინერვიულოთ! ეს სტატია უფრო სასწავლო სახელმძღვანელო იქნება. გირჩევთ გადახედოთ თითოეულ მონაკვეთს, რათა წარმოდგენა გექნებათ რეგექსის მექანიკის შესახებ. ეს ასევე დაგეხმარებათ თავის გარშემო შემოხვევაში, თუ ჯერ კიდევ დაბნეული ხართ რა არის რეგექსი.

მას შემდეგ რაც ათვალიერებთ ნივთებს, გირჩევთ გახსნათ regex101.com და ითამაშოთ ქვემოთ მოცემულ თითოეულ ინსტრუმენტთან. ეს დაგეხმარებათ დაინახოთ როგორ გამოიყურება ცნებები პრაქტიკაში, ასევე გააუმჯობესებს თქვენს მეხსიერებას. მას შემდეგ, რაც ამას გააკეთებთ, შეგიძლიათ უბრალოდ მიიჩნიოთ ეს სტატია, როგორც საცნობარო წერტილი - ის, რასაც შეგიძლიათ დაუბრუნდეთ, როდესაც დაივიწყებთ რეგექსის ბიტებსა და ბობებს.

კარგი, წავიდეთ!

რა არის რეგექსის არომატები?

პირველ რიგში, ჩვენ ვაპირებთ შევხედოთ რეგექსის არომატებს. არ ინერვიულოთ - ეს არ იმოქმედებს თქვენს ყოველდღიურ გამოყენებაზე Regex-ის მალსახმობებით. ეს უბრალოდ უნდა იცოდე, სანამ დაიწყებ.

არსებობს რეგექსის სხვადასხვა ვერსიები, რომლებიც ცნობილია როგორც "გემოვნება". ეს განსხვავებული ვერსიები ჯერ კიდევ ძალიან ჰგავს. თუ თქვენ შეგიძლიათ ისწავლოთ წერა-კითხვა ერთი არომატით, თქვენ უნდა შეძლოთ რომელიმე მათგანის წაკითხვა. მხოლოდ მცირე განსხვავებები იქნება თქვენი რეგექსის კოდის ფორმატირებისთვის.

პროგრამირებაში, ამ ფორმატირების სპეციფიკა ცნობილია როგორც "სინტაქსი". ეს არის ზუსტად ის გზა, რომლითაც თქვენ უნდა დაწეროთ თქვენი კოდი, რომ ეს კოდი გაიგოს აპმა, რომელშიც მას წერთ.

აი, რატომ აქვს მნიშვნელობა სინტაქსს

"ჰეი მეგობარო, როგორ მიდის შენი დღე?"

„მიდიხარ მეგობარო? შენი ჰეი დღე როგორ"

ორივე წინადადებას აქვს იგივე სიტყვები, სიმბოლოები და სივრცეები. თუმცა მხოლოდ ერთს აქვს აზრი და ეს იმიტომ, რომ ის მიჰყვება ჩვეულებრივ სინტაქსს.

კოდირებისას, პროგრამირების ერთ ენას შეიძლება ესმოდეს პირველი ვერსია, მაგრამ არა მეორე. სხვა პროგრამირების ენაზე, თუმცა, მეორე შეიძლება იყოს სრული აზრი, ხოლო პირველი გამოიყურება როგორც უაზრო. თუმცა, ვისაც შეუძლია ინგლისურად საუბარი, თქვენ ალბათ გესმით ორივე სტრიქონის განზრახვა, მიუხედავად იმისა, რომ ერთს ცოტა შრომა დასჭირდება მნიშვნელობის გასაგებად.

ეს არის (ერთგვარი) როგორია რეგექსის სხვადასხვა არომატი. ისინი ყველა ცოტათი განსხვავებულად გამოიყურებიან და ცოტათი გგავს. მაგრამ თქვენ უნდა იყენებდეთ სწორ არომატს იმ აპისთვის, რომელსაც იყენებთ, წინააღმდეგ შემთხვევაში ამ აპს წარმოდგენა არ ექნება რა დაწერეთ.

მალსახმობების აპს ესმის რეგექსის ICU არომატი, ასე რომ, ეს არის ის არომატი, რომლის გამოყენებაც გსურთ. regex101.com საიტს აქვს რამდენიმე განსხვავებული არომატი, რომელთაგან შეგიძლიათ აირჩიოთ გვერდის მარცხნივ. თუმცა ის იყენებს PCRE-ს, რომელიც საკმაოდ ჰგავს ICU-ს.

მნიშვნელოვანია იცოდეთ, რომ არსებობს რეგექსის სხვადასხვა არომატი, რადგან უეჭველად შეხვდებით სხვადასხვა გემოს ონლაინ. თუ იპოვით რეგექსის ნაწილს, რომლის მოპარვაც გსურთ, მაგრამ ვერ ახერხებთ Shortcuts-ით მუშაობას, ან უბრალოდ არ გამოიყურება, შეამოწმეთ რა გემოთი წერია!

ვებსაიტები და ცნობები, რომლებიც დაგეხმარებათ დაიწყოთ რეგექსის სწავლა მალსახმობებით

კიდევ ერთი რამ, რაც მინდა გავაშუქო, სანამ დავიწყებთ რეგექსის დაწერის რეალური მექანიკის შესწავლას, არის რესურსები. მე არავითარ შემთხვევაში არ ვამტკიცებ, რომ ეს პოსტი არის ამომწურავი რესურსი რეგექსის სწავლის შესახებ. ის უბრალოდ გამიზნულია, რომ იყოს დამხმარე საწყისი წერტილი მათთვის, ვისაც სურს გამოიყენოს რეგექსი მალსახმობებით.

თუ გსურთ ღრმად ჩაყვინთოთ რეგექსი ან გრძნობთ, რომ ეს სტატია არ გაწვდით საჭირო დახმარებას, შეგიძლიათ გაეცნოთ ამ სტატიებიდან, სახელმძღვანელოებსა და ხელსაწყოებს:

  • https://regex101.com – ვებსაიტი, რომელიც საშუალებას გაძლევთ შეამოწმოთ თქვენი რეგექსის კოდი რეალურ დროში.
  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet - მოტყუების ფურცელი, როდესაც დაგავიწყდებათ რას აკეთებს თითოეული პერსონაჟი
  • http://www.rexegg.com – ეს ვებსაიტი არის ყოვლისმომცველი რესურსი იმის შესასწავლად, რაც უნდა იცოდეთ რეგექსის შესახებ. შეამოწმეთ ეს, თუ გსურთ გახდეთ რეგექსის ცოდნა.
  • https://scottwillsey.com/blog/ios/regex1/ – ეს არის ოთხნაწილიანი ბლოგის სერია მალსახმობებით regex-ის გამოყენების შესახებ. მე ძალიან განსხვავებულ მიდგომას ვიყენებ ამ სახელმძღვანელოსგან, ასე რომ, ეს უნდა იყოს ამ სტატიის კარგი კომპანიონი სერია.
  • Stack Overflow და Reddit ორივე კარგი ვებსაიტია თქვენი რეგექსის კითხვებისა და პროგრესის გასაზიარებლად, რათა მიიღოთ რჩევები და პასუხები.

ეს რესურსები განსხვავდება იმ რესურსებისგან, რომლებიც ჩამოთვლილია თუ არ გსურთ ისწავლოთ რეგექსის გამოყენება Shortcuts აპით განყოფილება, რადგან ისინი ყველა მოგთხოვთ რეალურად დაიწყოთ რეგექსის სწავლა. ისინი უფრო ყოვლისმომცველია, ხოლო სხვები მხოლოდ საცნობარო წერტილებია.

როგორ შეასრულოთ ძირითადი ტექსტის ძებნა რეგექსის გამოყენებით მალსახმობებით

Კარგი! ჩვენ ახლა მივედით იქამდე, რასაც ყველა ელოდა: ჩვენ ვაპირებთ ვისწავლოთ რეგექსის გამოყენების საფუძვლები მალსახმობებით.

დავიწყოთ ძირითადი ძიებით, რადგან ეს არის ყველაზე მარტივი რამ, რისი გაკეთებაც შეგიძლიათ რეგექსით. როგორც უკვე აღვნიშნეთ, გირჩევთ, რომ regex101.com გაიხსნათ სხვა ჩანართში, რათა შეძლოთ თანმიმდევრობა.

ყველაზე ძირითადში, regex მოძებნის (ან მატჩი) რაც არ უნდა ჩაწეროთ მასში. მაგალითად, მე რომ დავწერო Კარგი როგორც ჩემი რეგექსის კოდი, ის იპოვის ამ სახელმძღვანელოში სიტყვის "კარგად" ყველა მაგალითს.

საქმე, ინტერვალი და პუნქტუაციის მნიშვნელობა. ეს იმას ნიშნავს Კარგი, კარგი, Კარგი!, და Კარგი , ყველა სხვადასხვა შედეგს გამოიღებს.

და ეს არის ის! როდესაც რაიმეს აკრეფთ რეგექსის ძიებაში რაიმე სპეციალური სიმბოლოების გამოყენების გარეშე, regex ემთხვევა ყველაფერს, რაც ზუსტად ემთხვევა იმას, რასაც თქვენ აკრიფეთ.

არის ერთი დაჭერა! თქვენს კლავიატურაზე ზოგიერთი სიმბოლო ასევე სპეციალური რეგექსის სიმბოლოა. ეს ნიშნავს, რომ ისინი ასრულებენ რაიმე სახის ფუნქციას regex კოდში.

The ? სიმბოლო ერთ-ერთი ასეთი პერსონაჟია. იგი გამოიყენება რეგექსის კოდში, როგორც რაოდენობრივი მაჩვენებელი. ასე რომ, თუ ცდილობთ მოძებნოთ „კარგი?“ აკრეფით Კარგი? როგორც თქვენი რეგექსის კოდი, თქვენ ვერ მიიღებთ იმას, რაც გსურთ.

ამის გამოსასწორებლად, თქვენ უნდა მიუთითოთ, რომ გსურთ გამოიყენოთ "?" როგორც სტრიქონი და არა როგორც განსაკუთრებული სიმბოლო. ამ ან სხვა პერსონაჟისთვის ამის გასაკეთებლად, უბრალოდ დაამატეთ a \ სიმბოლო ზუსტად იმ პერსონაჟის წინ, რომლის განსაკუთრებული თვისებების გაუქმება გსურთ.

ასე რომ, თუ გსურთ მოძებნოთ "კარგი?" regex-ით, თქვენი კოდი ასე გამოიყურება:

Კარგი\?

თუ არ ხართ დარწმუნებული, რომ კონკრეტული სიმბოლო განიხილება, როგორც სპეციალური სიმბოლო რეგექსით, შეგიძლიათ შეამოწმოთ ეს მოტყუების ფურცელი რეგექსის ყველა სპეციალური სიმბოლოსთვის.

მოძებნეთ ერთზე მეტი სიტყვა "ან" სიმბოლოს გამოყენებით

რეგექსით სტრიქონების ძიების კიდევ ერთი მნიშვნელოვანი კომპონენტია „ან“ ფუნქციის გამოყენება. ეს არის პერსონაჟი, რომელიც შეგიძლიათ მოათავსოთ ორ სიტყვას/პერსონაჟს შორის და თქვათ: „შეადარეთ ეს ან ეს“.

მაგალითად, თუ მსურს მოძებნო ტექსტის მთლიანი ნაწილი სიტყვა "კარგად" და "კარგად", მე გამოვიყენებ | პერსონაჟი. Ამის მსგავსად:

კარგი | კარგი

თუ გიჭირთ პოვნა | ხასიათი, გამართავს ცვლა დააჭირე და დააჭირე \ გასაღები. ის მაღლა დგას დაბრუნების გასაღები კლავიატურების უმეტესობაზე.

ცვლადი კომპონენტების დამატება თქვენს რეგექსის ძიებაში

კარგი, ახლა, როცა იცით, როგორია ნეიტრალური რეგექსი, დროა აირჩიოთ თქვენი პირველი განსაკუთრებული პერსონაჟი. ეს იქნება კვადრატული ფრჩხილები, რომლებიც ეს არის [].

რაც არ უნდა ჩადოთ ამ ფრჩხილებში, ჩაითვლება თქვენი რეგექსის ძიების ცვლად კომპონენტად. შეგიძლიათ ფრჩხილებში მოათავსოთ იმდენი სიმბოლო, რამდენიც გსურთ, თუმცა მხოლოდ ერთი იქნება მოქმედი თითო მატჩში.

კარგი, ეს ცოტა რთულად ჟღერს, მაგრამ ეს ასე არ არის! აი, როგორ გამოიყურება პრაქტიკაში:

  • [Კარგი უბრალოდ ემთხვევა სიტყვას "კარგი". ერთგვარი უაზრო.
  • [AB] კარგი დაემთხვევა როგორც "Alright" და "Blright".
  • ალრ[იუქსიზ]ღტ დაემთხვევა "Alright", "Alroght", "Alrught", "Alrxght" და ა.შ.

შეგიძლიათ დააკავშიროთ სიმბოლოები ფრჩხილებში, ასევე გამოიყენოთ მრავალი ფრჩხილები რეგექსის იმავე ხაზში. [AB]r[i1]gh[tuvwxyz] არის რეგექსის მოქმედი ნაწილი. თუმცა, იმედია, ის არ გამოიყურება ისეთი ქაოტური, როგორც რამდენიმე წუთის წინ!

დიაპაზონებს შეუძლიათ გააფართოვონ თქვენი ძებნა

რეგექსის შემდეგი ნაწილი, რომელიც სასარგებლო იქნება Shortcuts-ით, არის დიაპაზონი. დიაპაზონები საშუალებას გაძლევთ მიუთითოთ სიმბოლოების დიაპაზონი, რომლებსაც მიიღებთ.

წინა განყოფილებაში შესაძლოა შენიშნეთ, რომ ჩემს ფრჩხილებში უამრავი თანმიმდევრული ასო იყო. ყველაზე გრძელი იყო [tuvwxyz]. ეს ასოები ანბანში ჩნდება იმავე თანმიმდევრობით, ერთმანეთის გვერდით.

ეს ნიშნავს, რომ შემეძლო გამოვიყენო დიაპაზონი მათი აკრეფის ნაცვლად. ეს ასე გამოიყურება:

კარგი[t-z]

რეგექსის კოდის ეს ნაწილი იგივეს გააკეთებს, რაც კარგი[tuvwxyz]. უბრალოდ უფრო სუფთა და ადვილი დასაწერია.

თქვენ შეგიძლიათ შეცვალოთ იგივე დიაპაზონი [a-z] თუ გინდოდათ ანბანიდან რომელიმე პატარა ასოს მიღება. ან შეგიძლიათ გამოიყენოთ [0-9] თუ გინდოდა რომელიმე ერთნიშნა რიცხვის მიღება.

თქვენ ასევე შეგიძლიათ დააკავშიროთ დიაპაზონები იმავე ფრჩხილში. მაგალითად, ეს Alr[i-ux-z]ght მიიღებს "Alright", "Alroght", "Alrxght" და "Alryght", მაგრამ არ მიიღებს "Alraght" ან "Alrvght".

არსებობს სიტყვის „კარგი“ სხვა ვარიაციები, რომლებსაც ეს კოდი მიიღებს, სხვათა შორის, და კიდევ ბევრს, რასაც არ მიიღებს. ეს მხოლოდ მოკლე არჩევანია ნივთების შესანარჩუნებლად, მოკლედ.

თუ გიჭირს იმის გაგება, თუ რა [i-ux-z] ნიშნავს, რომ ეს შეიძლება დაგეხმაროს, რომ დაინახოს ეს ასე დაწერილი:

[i-u, x-z]

ეს არ არის სწორი რეგექსის სინტაქსი – არ უნდა გამოიყენოთ მძიმები დიაპაზონების გასაყოფად. მაგრამ იმედია, ეს ხელს უწყობს უფრო აზრს!

თქვენ არ გჭირდებათ მძიმეები regex-ში დიაპაზონების გამოსაყოფად და არ გჭირდებათ დიაპაზონების დაყენება ერთმანეთის გვერდით. თქვენ შეგიძლიათ შეცვალოთ იგი [i-uabcx-z]. ეს მიიღებს იგივე დიაპაზონებს, როგორც ადრე, პლუს სიმბოლოებს "a", "b" და "c".

როგორ გამოვრიცხოთ სიტყვები და სიმბოლოები თქვენი რეგექსის ძიებებიდან მალსახმობებით

კარგი, ახლა ჩვენ სადღაც მივდივართ! თუ თქვენ მიჰყევით ამ სტატიას ამ მომენტამდე, უნდა შეგეძლოთ დაათვალიეროთ ქვემოთ მოცემული კოდი და გაიგოთ, რას ემთხვევა ის:

Ap[p-r]le[Tt]ool[BbLF]ox

თუ თქვენ შეგიძლიათ წაიკითხოთ, მაშინ იცით, რომ რეგექსის კოდი შეიცავს ბევრი სიტყვის "AppleToolBox" შესაძლო ვარიაციების შესახებ. რა მოხდება, თუ გვინდოდა შეგვემცირებინა ვარიაციების რაოდენობა, რომელსაც ის იღებს ჩვენი დიაპაზონის შეცვლის გარეშე?

სწორედ აქ შემოდის პერსონაჟი "არა". ეს ასე გამოიყურება: ^. თუ გიჭირთ მისი პოვნა თქვენს კლავიატურაზე (როგორც მე გავაკეთე), გააჩერეთ ცვლა და დააჭირეთ 6 გასაღები თქვენს კლავიატურაზე.

გამოსაყენებლად ^ პერსონაჟი, განათავსეთ ის პერსონაჟის დასაწყისში, რომლის გამორიცხვა გსურთ.

არის დაჭერა! The ^ სიმბოლო არ მუშაობს რეგექსის ფუნქციის მიღმა. თქვენ არ შეგიძლიათ უბრალოდ განათავსოთ იგი ასო "A"-ს წინ, რათა გამორიცხოს ეს ასო თქვენი ძიებიდან. რეგექსის კოდი ^ ა უბრალოდ მოძებნის დიდი "A".

ამის ნაცვლად, დააკავშირეთ იგი ფრჩხილებთან და სხვა რეგექსის სპეციალურ სიმბოლოებთან.

მაგალითად, თუ მსურს მოძებნო სიტყვის "კარგი" ნებისმიერი მაგალითი, რომელიც არ იწყება ასო "A"-ით, მე გამოვიყენებდი კოდს. [^A]კარგი.

თქვენ შეგიძლიათ დააკავშიროთ ის დიაპაზონებთან! უბრალოდ დააყენეთ ის თქვენი ფრჩხილის დასაწყისში და ყველაფერი ამ ფრჩხილში, დიაპაზონის ჩათვლით, გამოირიცხება თქვენი ძიებიდან. Ამის მსგავსად:

რა მოხდება, თუ გსურთ გამორიცხოთ კონკრეტული სიტყვა თქვენი ძიებიდან?

გამიჭირდა ამ ინფორმაციის მოძიება. Stack Overflow მომხმარებელს ჰქონდა გამოსავალი, თუმცა, ასე გამოიყურება:

^(?!(სიტყვა)$).+$

უბრალოდ შეცვალეთ სიტყვა ნებისმიერი სიტყვით, რომლის გამორიცხვაც გსურთ თქვენი ძიებიდან. Ამის მსგავსად:

შეგიძლიათ წაიკითხოთ Stack Overflow პოსტი აქ თუ გსურთ გაიგოთ მეტი ამ კონკრეტული გამოყენების შემთხვევის შესახებ.

Wildcards-ს შეუძლია მოგაწოდოთ ძიების მეტი ვარიანტი

ეს მიგვიყვანს ველურ კარტებთან. ბუნების სიმბოლო, რომელიც არის პერიოდი ., გამოიყენება რომელიმე ერთი სიმბოლოს წარმოსადგენად, ბარი არცერთი. თუ უბრალოდ აკრიფეთ . როგორც თქვენი რეგექსის კოდი მალსახმობებით, ის დააბრუნებს ტექსტის ტექსტის თითოეულ სიმბოლოს ინდივიდუალურ შესატყვისად.

მე არ გირჩევდი მის გამოყენებას ამ მიზნით, რა თქმა უნდა! ამის ნაცვლად, მე გირჩევთ გამოიყენოთ იგი სიტყვის ერთი სიმბოლოს ნაცვლად. Მაგალითად, კარგი დაემთხვევა "Alright", "Alrxght", "Alr

და ეს საკმაოდ ბევრია! Wildcard პერსონაჟი საკმაოდ ადვილად გასაგებია. ყველაფერს ემთხვევა! ეს ხელს უწყობს სტრიქონების პოვნას, რომლებიც შეესაბამება კონკრეტულ ფორმატს, ხოლო უნიკალური სიმბოლოები.

მაგალითად, ელ. ფოსტა ძალიან ჰგავს ერთმანეთს ისე, რომ არ იყოს ერთნაირი. wildcard დაგეხმარებათ დააკავშიროთ ელემენტები, რომლებიც იცით, რომ იქ იქნებიან (როგორიცაა „.com“ და „@“) იმ სიმბოლოებთან, რომლებიც არ იცით (როგორიცაა „my_email567“, iCloud ან „Gmail“).

გამოყენების კიდევ ერთი საინტერესო შემთხვევაა გამოყენება . სიმბოლო კონკრეტული სიგრძის სტრიქონების მოსაძებნად.

მაგალითად, თუ მსურს ვიპოვო ყოველი ოთხი სიმბოლოანი სტრიქონი ტექსტის ნაწილში, შემიძლია გამოვიყენო ... ორივე მხარეს სივრცეში.

და აქ არის ყველა შვიდი სიმბოლოს სტრიქონი იმავე ტექსტში:

გაითვალისწინეთ, რომ ეს არ არის სრულყოფილი მეთოდი გარკვეული სიგრძის სტრიქონების მოსაძებნად. როგორც ზემოთ მოყვანილ მაგალითებში ხედავთ, ზოგიერთი სტრიქონი ემთხვევა, რაც არ უნდა იყოს და ზოგიერთი, რომელიც უნდა იყოს, იგნორირებულია. უბრალოდ საინტერესოა გახსოვდეთ, რომ შეგიძლიათ გამოიყენოთ . პერსონაჟი სიმბოლოების დასათვლელად.

ასევე, გაითვალისწინეთ, რომ . რეგექსის განსაკუთრებული პერსონაჟია. ეს ნიშნავს, რომ თქვენ უნდა დაამატოთ ა \ მის წინ თუ გსურთ პერიოდების ძებნა. ეს ნიშნავს, რომ თქვენ უნდა გამოიყენოთ Კარგი\. შესატყვისი "კარგი".

გამოიყენეთ რაოდენობები, რათა მიუთითოთ ტექსტის სიგრძე, რომელსაც ეძებთ

კარგი, ასე რომ თქვენ შეგიძლიათ ტექნიკურად გამოიყენოთ . სიმბოლო, რათა იპოვოთ სტრიქონი, რომელიც იკავებს სიმბოლოების გარკვეულ რაოდენობას. თუმცა, უმეტეს შემთხვევაში, თქვენ გსურთ იყოთ უფრო კონკრეტული.

სწორედ აქ შემოდის რაოდენობები. რაოდენობები საშუალებას გაძლევთ მიუთითოთ სტრიქონის სიგრძე, რომელსაც ეძებთ მალსახმობებით რეგექსის გამოყენებისას.

მაგალითად, თქვით, რომ გსურთ იპოვოთ ნებისმიერი სიტყვა, რომელიც კონკრეტულად სამი ასოა. ამის დასაზუსტებლად, თქვენ უნდა გამოიყენოთ ეს ფრჩხილები:

{}

როცა ამ ფრჩხილებს ათავსებთ ამის შემდეგ [] ფრჩხილებში, თქვენ აკონკრეტებთ, რომ გსურთ სტრიქონი, რომელიც შეესაბამება ამ სიმბოლოების რაოდენობას {} და მასში მითითებული სიმბოლოების დიაპაზონი [].

დარწმუნებული ვარ, ახლა ამას დიდი აზრი არ აქვს, ასე რომ, მოდით შევხედოთ მაგალითს!

თქვით, რომ გსურთ იპოვოთ ტექსტის ნაწილში ნახსენები წლები. ვინაიდან წელი შედგება ოთხი რიცხვისგან (აშკარად არა ყოველწლიურად ყველა დროის, უბრალოდ გამომყევი აქ), შეგიძლიათ გამოიყენოთ ეს კოდი ამ ტექსტში წლების შესატყვისად:

[0-9]{4}

ეს კოდი ამბობს, რომ ჩვენ გვინდა სტრიქონი, რომელიც შედგება სიმბოლოებისგან 0-დან 9-მდე, რომელიც კონკრეტულად ოთხი სიმბოლოა. თქვენ შეგიძლიათ ნახოთ, თუ როგორ ადგენს ის ამ კონკრეტულ სტრიქონს შემდეგ ეკრანის სურათზე:

უნდა აღვნიშნო, რომ არის გარკვეული პრობლემები ამ რეგექსის კოდთან და ეს ის არის, რომ ის არ ითვალისწინებს სივრცეებს ​​ან პუნქტუაციას. ასე რომ, თუ კოდი აღმოაჩენს ოთხ სიმბოლოზე მეტ რიცხვს, როგორიცაა „12345678“, ის იპოვის სტრიქონს „1234“ და სტრიქონს „5678“.

ამ პრობლემის გადასაჭრელად, თქვენ გსურთ დაამატოთ სივრცე კოდის დასაწყისში და ფრჩხილის შემდეგ {4} რომელიც შეიცავს სხვა სივრცეს, წერტილს, კითხვის ნიშანს, მძიმით და ძახილის პუნქტს. ამგვარად, ის უგულებელყოფს რიცხვების გრძელ სტრიქონებს და არ გამოტოვებს რიცხვების სტრიქონებს, რომლებსაც ბოლოში აქვთ პუნქტუაცია და არა ინტერვალი.

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

[a-z]{4,7,11}

არის კიდევ რამდენიმე რაოდენობრივი მაჩვენებელი, რომელთა შესახებაც გსურთ იცოდეთ

კარგი, ასე რომ კიდევ არის მეტი რაოდენობები! ეს ბოლო რამდენიმე კვანტიფიკატორი განკუთვნილია მაშინ, როდესაც გსურთ მიუთითოთ სტრიქონის სიგრძე ზედმეტი სპეციფიკის გარეშე.

მაგალითად, თქვით, რომ გსურთ იპოვოთ ნებისმიერი სიგრძის სტრიქონი, რომელსაც რეგექსი შეიძლება ემთხვეოდეს. სახელივით! სახელები (დასავლეთის ქვეყნებში) იწყება ერთი დიდი ასოებით და მთავრდება მცირე ასოების შემთხვევითი რაოდენობით, რასაც მოჰყვება ინტერვალი. სახელის მოსაძებნად, თქვენ დაწერთ შემდეგ კოდს:

[A-Z][a-z]*

[A-Z] მიუთითებს, რომ სტრიქონის პირველი სიმბოლო უნდა იყოს დიდი ასო. [a-z]* მიუთითებს, რომ სტრიქონის დანარჩენი ნაწილი უნდა შედგებოდეს მცირე ასოებისგან, მაგრამ არ აქვს მნიშვნელობა რამდენი ასო მოჰყვება. და ბოლოში არსებული სივრცე ნიშნავს, რომ ის დაასრულებს მატჩს, როგორც კი იპოვის ადგილს მცირე ასოების ბოლოს.

ოქროს კომბინაცია რეჟექსში არის .*. ეს ნიშნავს, რომ უსასრულოდ ემთხვევა ნებისმიერ პერსონაჟს. სხვა სიტყვებით რომ ვთქვათ, ის დაემთხვევა ტექსტის მთელ ნაწილს, როგორც ერთ ელემენტს.

შემდეგი რაოდენობრივი მაჩვენებელი, რომელიც თქვენ უნდა იცოდეთ არის +. ეს იგივეა * გარდა იმისა, რომ ის არ ემთხვევა სტრიქონს ნულოვანი სიმბოლოებით. * დაემთხვევა სტრიქონის ნებისმიერ სიგრძეს, რომელიც მოიცავს სტრიქონებს, რომლებსაც სიგრძე არ აქვთ. +მეორეს მხრივ, სჭირდება სტრიქონი მინიმუმ ერთი ან მეტი სიმბოლოთი.

და ბოლოს, არის ? რაოდენობრივი მაჩვენებელი. ეს არის უცნაური. იგი მიუთითებს, რომ სტრიქონი არის ან ნულოვანი სიმბოლოს სიგრძით ან ერთი სიმბოლოს სიგრძით. ეს არის - ან არაფერი, ან მხოლოდ ერთი. ასე რომ, თუ იყენებთ კოდს [a-z]? დასაწყისში და ბოლოს სივრცეში, ის მოძებნის ცალკეულ ასოებს ტექსტის ტექსტში.

მოძებნეთ სიმბოლოები ტექსტის სტრიქონის დასაწყისში და ბოლოს

ჩვენ ვუახლოვდებით ჩვენი სახელმძღვანელოს დასასრულს მალსახმობებით regex-ის გამოყენების შესახებ! არსებობს კიდევ ორი ​​სახის რეგექსის კოდი, რომელსაც გამოიყენებთ მალსახმობებით.

პირველი არის სიმბოლოები, რომლებიც საშუალებას გაძლევთ დაამთხვიოთ სტრიქონები იმის მიხედვით, თუ როგორ იწყება და/ან მთავრდება.

როდესაც ის არ არის ფრჩხილებში, ^ პერსონაჟის როლი იცვლება მნიშვნელობიდან „გამორიცხვა“ „დაიწყება“. ის განსაზღვრავს, რომ სტრიქონი უნდა დაიწყოს იმით, რაც გსურთ. მაგალითად, თუ წერ ^ ა, რომელიც ემთხვევა ასო "A"-ს სტრიქონებში "Alright", "Apple" და "A".

თუმცა ეს არ ემთხვევა მთელ სიტყვას. ამისათვის თქვენ დაგჭირდებათ მისი შეცვლა ^ ა[ა-ზა-ზ]*. ეს ემთხვევა აბზაცის/სტრიქონის პირველ სიტყვას, თუ ეს სიტყვა იწყება დიდი "A"-ით.

როგორც გვერდითი შენიშვნა, შეგიძლიათ დაწეროთ [ა-ზა-ზ] როგორც [A-z]. ეს იგივეს ნიშნავს, უბრალოდ ვხვდები, რომ პირველი ცოტა უფრო ნათელია, როცა სწავლობ.

სტრიქონის დასასრულის დასაზუსტებლად, თქვენ უნდა გამოიყენოთ $ პერსონაჟი. მუშაობს ისევე, როგორც ^ პერსონაჟი. ერთადერთი განსხვავება ისაა, რომ თქვენ წერთ მას ფრჩხილის/სტრიქონის ბოლოს და არა დასაწყისში.

მაგალითად, თუ გსურთ იპოვოთ სტრიქონები/აბზაცები, რომლებიც მთავრდება "le"-ით, თქვენ იყენებდით კოდს [A-z]*le$. ეს ემთხვევა "ცხრილს", "ვაშლს" და "შესაძლებელს", სანამ ისინი სტრიქონის ან აბზაცის ბოლოს არიან.

Regex კი უარყოფს ამ მატჩს, თუ სტრიქონის ბოლოს არის ინტერვალი ან პუნქტუაციური ნიშანი. "მაგიდა." არ დაემთხვევა ამ კოდს.

ამის გამოსასწორებლად, შეგიძლიათ გაითვალისწინოთ პუნქტუაცია. ეს კოდი ითვალისწინებს პუნქტუაციისა და ინტერვალის სხვადასხვა ფორმებს, რომლებიც შეიძლება მოხდეს სტრიქონის ბოლოს, მათ შორის პუნქტუაციური ნიშნის შემდეგ ინტერვალით:

[A-z]*(le[\.\?!, ]?[ ]?)$

ეს კოდი ემთხვევა „შეუძლია“, „ცხრილი“, „სტაბილური“ და „შესაძლოა? “.

შეინახეთ ტექსტური სტრიქონები რეგექსის დაჯგუფების ფუნქციის გამოყენებით მალსახმობებით

Კარგი! თქვენ მიაღწიეთ ჩვენი AppleToolBox სახელმძღვანელოს დასრულებას მალსახმობებით regex-ის გამოყენების შესახებ. კიდევ ერთი რეგექსის ფუნქცია დარჩა შესასწავლი და ეს არის დაჯგუფება.

დაჯგუფება, სავარაუდოდ, რეგექსის ყველაზე მნიშვნელოვანი მახასიათებელია, რადგან ეს არის ის, რაც საშუალებას გაძლევთ გააკეთოთ საქმეები თქვენს მიერ დაწერილი რეგექსის კოდით. ამის გარეშე, regex მხოლოდ საძიებო ფუნქციაა. მას შეუძლია მხოლოდ გითხრათ, არის თუ არა სტრიქონი ტექსტის უფრო დიდ ნაწილში, ანუ ის დააბრუნებს "true" ან "false".

თუმცა, დაჯგუფებით, შეგიძლიათ შეინახოთ თქვენი რეგექსის კოდის შედეგები. და ეს ნიშნავს, რომ თქვენ შეგიძლიათ დააკოპიროთ მატჩები, შეინახოთ ისინი ცვლადებში, შეცვალოთ ისინი სხვა ტექსტით, შეცვალოთ მათი ფორმატირება და ყველაფერი, რისი გაკეთებაც გსურთ რეგექსით.

საბედნიეროდ, დაჯგუფება ძალიან მარტივია! უბრალოდ ჩადეთ ის, რაც გსურთ დაჯგუფება ფრჩხილებში (). რასაც თქვენ ჩასვამთ ფრჩხილებში, განიხილება როგორც ჯგუფი.

თუ ფრჩხილებში ჩასვამთ რეგექსის კოდის მთელ ხაზს, მაგალითად (.*@.*\..{3}), მაშინ ეს ჯგუფი დაიმახსოვრდება თქვენი კოდით, რაც საშუალებას მისცემს მას მოგვიანებით გაიხსენოს ხაზის ქვემოთ.

მნიშვნელოვანია, რომ გამოიყენოთ მხოლოდ ჯგუფები, როცა ეს გჭირდებათ. ვინაიდან ისინი ინახება მეხსიერებაში, მათ შეუძლიათ გამოიწვიონ თქვენი კოდის შესრულების შემცირება. შეინახეთ ჯგუფები საჭიროების შემთხვევაში!

თქვენ შეგიძლიათ გამოიყენოთ ჯგუფები ორგანიზაციისთვისაც

თქვენ ასევე შეგიძლიათ გამოიყენოთ ჯგუფები თქვენი რეგექსის კოდის ორგანიზებისთვის მალსახმობებით. როცა ამას აკეთებთ, ფრჩხილებში მყოფი ჯგუფი სულაც არ დაიმახსოვრდება.

მაგალითად, თქვით, რომ მინდა დავამთხვიო სიტყვა "გამარჯობა", გარდა იმისა, რომ არ მაინტერესებს ბოლო ასო. ეს შეიძლება იყოს ნებისმიერი პატარა ან დიდი ასო ან თუნდაც რიცხვი. „Hell3838djdjajaksks“ და „Hello“ უნდა ჩაითვალოს მატჩებად. მეორე მხრივ, "ჯოჯოხეთი" არ უნდა ჩაითვალოს.

იმისათვის, რომ ეს იმუშაოს, მე ვწერ კოდს ჯოჯოხეთი[A-z]|[0-9]+. მაგრამ ეს არის შედეგი, რომელსაც მე ვიღებ:

მიზეზი იმისა, რომ არ ემთხვევა ისე, როგორც მე ველოდი, არის ის + გამოიყენება მხოლოდ [0-9] სამაგრი. მჭირდება, რომ ორივე ფრჩხილზე გამოვიყენო.

გარდა ამისა, ეს კოდი ამბობს, რომ მე მინდა ჯოჯოხეთი [A-z]ან[0-9]. ასე რომ, ის ემთხვევა სიტყვებს, რომლებიც იწყება „ჯოჯოხეთით“ და მთავრდება ასოებით, ან ეძებს რიცხვების ნებისმიერ სტრიქონს. რაც მე რეალურად მჭირდება არის ის, რომ შეესაბამებოდეს სიტყვა „ჯოჯოხეთის“ შემთხვევებს, რომლებიც მთავრდება ასოებით ან რიცხვით.

ამის გამოსწორების მიზნით, შემიძლია გამოვიყენო ჯგუფი და გადავიწერო კოდი როგორც ჯოჯოხეთი([A-z]|[0-9])+. ახლა ის ეძებს სიტყვას "ჯოჯოხეთი", რასაც მოჰყვება ნებისმიერი ასო ან ნომერი. და რადგან + გამოიყენება ორივე ფრჩხილზე, ეს შეიძლება იყოს ასოებისა და რიცხვების ნებისმიერი კომბინაცია, თუ არსებობს მინიმუმ ერთი ასო ან რიცხვი.

როგორც ქვემოთ მოცემულ სკრინშოტში ხედავთ, ეს ჯგუფი წყვეტს ჩემს პრობლემას ამ ჯგუფში ინფორმაციის შენახვის გარეშე:

Ახლა რა?

და ეს არის ის! ეს არის თითქმის ყველაფერი, რისი ცოდნაც შეიძლება ოდესმე გინდოდეს მალსახმობებით regex-ის გამოყენების შესახებ. იმედია, თავს საკმარისად თავდაჯერებულად გრძნობთ, რომ ახლავე დაიწყოთ რეგექსის ექსპერიმენტები, მაშინაც კი, თუ ამას თავიდანვე აზრი არ ჰქონდა.

ახლა, როცა იცით რეგექსის საფუძვლები, მზად ხართ დაიწყოთ მისი გამოყენება თქვენს მალსახმობებში! Shortcuts იღებს რეგექსის შეყვანას შემდეგ ქმედებებში:

  • ტექსტის შესატყვისი
  • ტექსტის შეცვლა

ამ ორი მალსახმობის მოქმედების გამოყენებით, შეგიძლიათ ჩასვათ რეგექსი თქვენს მალსახმობებში.

დააკავშირეთ ეს Shortcuts-ის ავტომატიზაციის შესაძლებლობებთან და თქვენს განკარგულებაში გექნებათ საკმაოდ ძლიერი ინსტრუმენტი.

თქვენ შეგიძლიათ გამოიყენოთ regex მალსახმობებში ტექსტის ფორმატირების გასაადვილებლად, ინფორმაციის ამოსაღებად ელ.წერილებიდან, ტექსტებიდან, ვებსაიტებიდან, ფაილები და კალენდარული მოვლენები, შექმენით ტექსტი, რომელიც შეესაბამება მითითებულ ფორმატს, შეამოწმეთ, რომ შეყვანილი იყო სწორად და მეტი.

მაგალითად, თქვით, რომ გსურთ ელ.ფოსტის შესატყვისი. შესაძლოა დაგჭირდეთ შეამოწმოთ, რომ ტექსტის სტრიქონი არის ელ.წერილი, ან იქნებ გსურთ ელფოსტის (ელფოსტის) ამოღება ტექსტის ნაწილიდან.

როგორ დაარღვიე ეს?

კარგად, თქვენ იცით, რომ ელ.ფოსტის ძირითადი სტრუქტურა იქნება ასოების, რიცხვების და სიმბოლოების კომბინაცია, რასაც მოჰყვება "@" სიმბოლო, შემდეგ მოჰყვება ისეთი ვებსაიტის სახელი, როგორიცაა Gmail ან iCloud, რომელსაც მოჰყვება ".com", ".org" ან სხვა სახის სამი სიმბოლოანი უმაღლესი დონის. დომენი.

ამის დასაწერად regex-ში, თქვენ უნდა მიუთითოთ, რომ გსურთ მინიმუმ ერთი სიმბოლოს სიგრძის სტრიქონი, რომელიც დაუყოვნებლივ მოჰყვება "@" სიმბოლოთი, შემდეგ კიდევ ერთი სტრიქონი მინიმუმ ერთი სიმბოლოთი, რასაც მოჰყვება ".", შემდეგ სამი სტრიქონი. პერსონაჟები. ეს ასე გამოიყურება:

[ელფოსტა დაცულია]+\..{3}

თუ ამას ჩასვით მასში ტექსტის შესატყვისი ან ტექსტის შეცვლა მოქმედებების Shortcuts-ში, თქვენ გექნებათ ავტომატიზაცია, რომელსაც შეუძლია ელ.ფოსტის მისამართის პოვნა, შენახვა და მანიპულირება.

თქვენ შეგიძლიათ გამოიყენოთ ამ სახის პრობლემის გადაჭრა თქვენი საკუთარი რეგექსის გადაწყვეტილებების მოსაძებნად ან სხვების მიერ ონლაინ შემუშავებული გადაწყვეტილებების მოსაძებნად!

დაიწყეთ regex-ის გამოყენება Shortcuts-ით თქვენი ავტომატიზაციის შემდეგ საფეხურზე ასასვლელად

და ეს, მეგობრებო, ნამდვილად ასეა. იმედი მაქვს მოგეწონათ ამ სტატიის თვალყურის დევნება! ეს არის ერთ-ერთი ყველაზე ამბიციური ნამუშევარი, რომელიც ოდესმე დავწერე AppleToolBox-ისთვის. მე უნდა მესწავლა რეგექსი მის დაწერა და ვიმედოვნებ, რომ ამით შევძელი დაგეხმარები მის სწავლაში.

Regex-ის გამოყენება Shortcuts-ით არაფრით განსხვავდება სხვა რამის კეთების სწავლისგან თქვენს სმარტფონზე ან კომპიუტერზე. უბრალოდ დაუთმეთ გარკვეული დრო და მოთმინება და საბოლოოდ, თქვენ მიაღწევთ იქ.

დამატებითი სახელმძღვანელოების, გაკვეთილებისა და სიახლეებისთვის Apple-ის ყველაფერზე, იხილეთ დანარჩენი AppleToolBox ბლოგი.

Კარგი [A-Z][a-z]+, შემდეგ ჯერზე შევხვდებით!