Excel RegEx მაგალითები: რეგულარული გამონათქვამების გამოყენება ფორმულებში

  • გააზიარეთ ეს
Michael Brown

Სარჩევი

ვერასდროს გაიგებთ, რატომ არ არის მხარდაჭერილი რეგულარული გამონათქვამები Excel-ის ფორმულებში? ახლა ისინი არიან :) ჩვენი მორგებული ფუნქციებით, თქვენ შეგიძლიათ მარტივად იპოვოთ, შეცვალოთ, ამოიღოთ და ამოიღოთ სტრიქონები, რომლებიც შეესაბამება კონკრეტულ შაბლონს.

ერთი შეხედვით, Excel-ს აქვს ყველაფერი, რაც შეიძლება დაგჭირდეთ ტექსტის სტრიქონისთვის. მანიპულაციები. ჰმ... რაც შეეხება ჩვეულებრივ გამონათქვამებს? Oops, არ არის ჩაშენებული Regex ფუნქციები Excel-ში. მაგრამ არავინ ამბობს, რომ ჩვენ არ შეგვიძლია შევქმნათ საკუთარი :)

    რა არის რეგულარული გამოხატულება?

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

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

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

    მხარდაჭერია თუ არა Excel regex?

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

    =IF(RegExpMatch(A5, $A$2), "Yes", "No")

    მეტი ფორმულის მაგალითებისთვის იხილეთ:

    • როგორ დავამთხვიოთ სტრიქონები რეგულარული გამონათქვამების გამოყენებით
    • Excel Data Validation with regexes

    Excel Regex Extract ფუნქცია

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

    RegExpExtract(ტექსტი, ნიმუში, [მაგალითის_რაოდენობა], [შემთხვევის_შემთხვევა])

    სად:

    • ტექსტი (საჭიროა) - ტექსტის სტრიქონი საძიებლად in.
    • ნიმუში (აუცილებელია) - რეგულარული გამოხატულება შესატყვისად.
    • მაგალითის_რიცხვი (სურვილისამებრ) - სერიული ნომერი, რომელიც მიუთითებს, რომელ ეგზემპლარს ამონაწერი. თუ გამოტოვებულია, აბრუნებს ყველა ნაპოვნი შესატყვისს (ნაგულისხმევი).
    • შემთხვევის_შემთხვევა (არასავალდებულო) - განსაზღვრავს, შეესაბამება თუ არა (TRUE ან გამოტოვებული) თუ იგნორირებას (FALSE) ტექსტის ასოები.

    ფუნქციის კოდი შეგიძლიათ მიიღოთ აქ.

    მაგალითი: როგორ ამოიღოთ სტრიქონები რეგულარული გამონათქვამების გამოყენებით

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

    ნიმუში : \b\d{7}\b

    დასვით ნიმუში A2-ში და თქვენ დაასრულებთ სამუშაოს ამ კომპაქტური და ელეგანტური ფორმულით:

    =RegExpExtract(A5, $A$2)

    თუ ნიმუში შეესაბამება, ფორმულა ამოიღებს ინვოისის ნომერს, თუ შესატყვისი არ არის ნაპოვნი - არაფერი დაბრუნდა.

    დამატებითი მაგალითებისთვის იხილეთ: როგორ ამოიღოთ სტრიქონები Excel-შირეგექსის გამოყენებით.

    Excel Regex Replace ფუნქცია

    RegExpReplace ფუნქცია ცვლის რეგექსის შესატყვის მნიშვნელობებს თქვენ მიერ მითითებულ ტექსტთან.

    RegExpReplace(ტექსტი, ნიმუში, ჩანაცვლება , [მაგალითის_რაოდენობა], [შემთხვევა_შემთხვევა])

    სად:

    • ტექსტი (საჭიროა) - ტექსტის სტრიქონი საძიებლად.
    • ნიმუში (აუცილებელია) - რეგულარული გამოხატულება შესატყვისად.
    • ჩანაცვლება (აუცილებელია) - ტექსტი, რომლითაც უნდა ჩაანაცვლოს შესაბამისი ქვესტრიქონები.
    • მაგალითის_რიცხვი (სურვილისამებრ) - ჩანაცვლების მაგალითი. ნაგულისხმევი არის "ყველა შესატყვისი".
    • შემთხვევა_შემთხვევა (არასავალდებულო) - აკონტროლებს შეესაბამება თუ არა (TRUE ან გამოტოვებული) თუ იგნორირებას (FALSE) ტექსტის რეზერვები.

    ფუნქციის კოდი ხელმისაწვდომია აქ.

    მაგალითი: როგორ შევცვალოთ ან წაშალოთ სტრიქონები რეგექსების გამოყენებით

    ზოგიერთი ჩანაწერი შეიცავს საკრედიტო ბარათის ნომრებს. ეს ინფორმაცია კონფიდენციალურია და შეიძლება დაგჭირდეთ მისი შეცვლა ან საერთოდ წაშლა. ორივე ამოცანის შესრულება შესაძლებელია RegExpReplace ფუნქციის დახმარებით. Როგორ? მეორე სცენარში, ჩვენ ჩავანაცვლებთ ცარიელი სტრიქონით.

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

    ნიმუში : \b\d{4} \d{4} \d{4} \d{4}\ b

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

    ჩანაცვლება : XXXX XXXX XXXXXXXX

    და აქ არის სრული ფორმულა შეცვალეთ საკრედიტო ბარათის ნომრები არასენსიტიური ინფორმაციით:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX")

    რეგექსით და ჩანაცვლებითი ტექსტით ცალკეულ უჯრედებში ( A2 და B2), ფორმულა მუშაობს თანაბრად კარგად:

    Excel-ში „ამოღება“ არის „ჩანაცვლების“ განსაკუთრებული შემთხვევა. საკრედიტო ბარათის ნომრების ამოსაშლელად , უბრალოდ გამოიყენეთ ცარიელი სტრიქონი ("") ჩანაცვლება არგუმენტისთვის:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")

    რჩევა. შედეგების ცარიელი ხაზების გაყალბების მიზნით, შეგიძლიათ გამოიყენოთ სხვა RegExpReplace ფუნქცია, როგორც ეს ნაჩვენებია ამ მაგალითში: როგორ ამოიღოთ ცარიელი ხაზები regex-ის გამოყენებით.

    დამატებითი ინფორმაციისთვის იხილეთ:

    • როგორ შევცვალოთ სტრიქონები Excel-ში regex-ის გამოყენებით
    • როგორ წავშალოთ სტრიქონები regex-ის გამოყენებით
    • როგორ ამოიღოთ უფსკრული რეგექსის გამოყენებით

    Regex Tools შესატყვისი, ამონაწერი , ჩაანაცვლეთ და წაშალეთ ქვესტრიქონები

    ჩვენი Ultimate Suite-ის მომხმარებლებს შეუძლიათ მიიღონ რეგულარული გამონათქვამების მთელი ძალა თავიანთ სამუშაო წიგნებში კოდის ერთი ხაზის ჩასმის გარეშე. ყველა საჭირო კოდი იწერება ჩვენი დეველოპერების მიერ და გლუვი ინტეგრირებულია თქვენს Excel-ში ინსტალაციის დროს.

    ზემოთ განხილული VBA ფუნქციებისგან განსხვავებით, Ultimate Suite-ის ფუნქციები დაფუძნებულია .NET-ზე, რაც იძლევა ორ მთავარ უპირატესობას:

    1. თქვენ შეგიძლიათ გამოიყენოთ რეგულარული გამონათქვამები ნორმალურ .xlsx სამუშაო წიგნებში VBA კოდის დამატების გარეშე და მათი შენახვა მაკრო ჩართული ფაილების სახით.
    2. .NET Regex ძრავა მხარს უჭერს სრულფასოვან კლასიკასრეგულარული გამონათქვამები, რაც საშუალებას გაძლევთ შექმნათ უფრო დახვეწილი შაბლონები.

    როგორ გამოვიყენოთ Regex Excel-ში

    დაინსტალირებული Ultimate Suite, Excel-ში რეგულარული გამონათქვამების გამოყენება ისეთივე მარტივია, როგორც ეს ორი ნაბიჯი :

    1. Ablebits Data ჩანართზე, Text ჯგუფში დააწკაპუნეთ Regex Tools .

    2. Regex Tools პანელზე გააკეთეთ შემდეგი:
      • აირჩიეთ წყაროს მონაცემები.
      • შეიყვანეთ თქვენი რეგექსის ნიმუში.
      • აირჩიეთ სასურველი ვარიანტი: შესაბამისი , ამოღება , წაშლა ან ჩანაცვლება .
      • შედეგის მისაღებად როგორც ფორმულა და არა მნიშვნელობა, აირჩიეთ ველი ფორმულად ჩასმა .
      • დააჭირეთ მოქმედების ღილაკს.

      მაგალითად, საკრედიტო ბარათის ნომრების უჯრედებიდან ამოსაღებად. A2:A6, ჩვენ ვაკონფიგურირებთ ამ პარამეტრებს:

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

    =AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")

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

    როგორ ჩავსვათ Regex ფორმულა პირდაპირ უჯრედში

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

    1. დააწკაპუნეთ ღილაკზე fx ფორმულების ზოლზე ან ფუნქციის ჩასმა ფორმულები ჩანართზე.
    2. ფუნქციის ჩასმა დიალოგურ ფანჯარაში აირჩიეთ AblebitsUDFs კატეგორია, აირჩიეთ ინტერესის ფუნქცია და დააწკაპუნეთ OK.

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

    დამატებითი ინფორმაციისთვის იხილეთ Regex Tools Excel-ისთვის.

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

    ხელმისაწვდომი ჩამოტვირთვები

    Excel Regex - ფორმულების მაგალითები (.xlsm ფაილი)

    Ultimate Suite - საცდელი ვერსია (.exe ფაილი)

    ან .NET-ზე დაფუძნებული) ან დააინსტალირეთ მესამე მხარის ხელსაწყოები, რომლებიც მხარს უჭერენ რეგექსებს.

    Excel Regex-ის მოტყუების ფურცელი

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

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

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

    პერსონაჟები

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

    ნიმუში აღწერა მაგალითი შეესაბამება
    . ჯანმრთელი სიმბოლო: ემთხვევა ნებისმიერ სიმბოლოს გარდა ხაზის წყვეტისა .ot წერტილი , ცხელი , pot , @ot
    \d ციფრიანი სიმბოლო: ნებისმიერი ერთნიშნა 0-დან 9-მდე \d a1b -ში ემთხვევა 1
    \D ნებისმიერი სიმბოლო, რომელიც არ არის ციფრი \D a1b -ში, ემთხვევა a და b
    \s სივრცის სიმბოლო: ინტერვალი, ჩანართი, ახალი ხაზი და კარის დაბრუნება .\s. in 3 ცენტი , შეესაბამება 3 c
    \S ნებისმიერუფსკრული სიმბოლო \S+ 30 ცენტში , ემთხვევა 30 და ცენტს
    \w სიტყვის სიმბოლო: ნებისმიერი ASCII ასო, ციფრი ან ხაზგასმული \w+ 5_cats*** , ემთხვევა 5_cats
    \W ნებისმიერ სიმბოლოს, რომელიც არ არის ალფაციფრული სიმბოლო ან ხაზგასმული \W+ 5_cats*** -ში ემთხვევა ***
    \t Tab
    \n ახალი ხაზი \n\d+ ორხაზში სტრიქონი ქვემოთ, ემთხვევა 10

    5 კატას

    10 ძაღლს

    \ გაურბის პერსონაჟის განსაკუთრებულ მნიშვნელობას, ასე რომ თქვენ შეგიძლიათ მოძებნეთ იგი \.

    \w+\.

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

    ბატონი , ქალბატონი , პროფ.

    პერსონაჟების კლასები

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

    ნიმუში აღწერა მაგალითი შეესაბამება
    [სიმბოლოები] ემთხვევა ფრჩხილებში მოცემულ ნებისმიერ სიმბოლოს d[oi]g dog და dig
    [^პერსონაჟები] ემთხვევა რომელიმე სიმბოლოს, რომელიც არ არის ფრჩხილებში d[^oi]g შეესაბამება dag, dig , d1g

    არ ემთხვევა ძაღლი და dig

    [from–დან] ემთხვევა ნებისმიერ სიმბოლოს დიაპაზონში შორისფრჩხილები [0-9]

    [a-z]

    [A-Z]

    ნებისმიერი ერთი ციფრი 0-დან 9-მდე

    ნებისმიერი პატარა ასო

    ნებისმიერი დიდი ასო

    Quantifiers

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

    ნიმუში აღწერა მაგალითი შესაბამისები
    * ნული ან მეტი შემთხვევა 1a* 1, 1a , 1aa, 1aaa და ა.შ.
    + ერთი ან მეტი შემთხვევა po+ ქოთანში , შეესაბამება პო

    ღარიბი , ემთხვევა ფუ

    ? ნული თუ ერთი შემთხვევა roa?d გზა, როდ
    *? ნული ან მეტი შემთხვევა, მაგრამ რაც შეიძლება ნაკლები 1a*? 1a , 1aa და 1aaa , შეესაბამება 1a
    +? ერთი ან მეტი შემთხვევა, მაგრამ რაც შეიძლება ნაკლები po+? ქოთში და ღარიბი , ემთხვევა po
    ?? ნული ან ერთი შემთხვევა , მაგრამ რაც შეიძლება ნაკლები roa?? road და rod , ემთხვევა ro
    {n} ემთხვევა წინა შაბლონს n ჯერ \d{3} ზუსტად 3 ციფრი
    {ნ ,} ემთხვევა წინა შაბლონს n ან მეტჯერ \d{3,} 3 ან მეტი ციფრი
    {n,m} შეესაბამებაწინა ნიმუში n და m-ს შორის \d{3,5} 3-დან 5 ციფრამდე

    დაჯგუფება

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

    სინტაქსი აღწერა მაგალითი შესატყვისები
    (ნიმუში) ჩაწერის ჯგუფი: იჭერს შესატყვის ქვესტრინგს და ანიჭებს მას რიგით რიცხვს (\d+) 5 კატასა და 10 ძაღლში , იჭერს 5 (ჯგუფი 1) და 10 (ჯგუფი 2)
    (?:pattern) არადამჭერი ჯგუფი: ემთხვევა ჯგუფს, მაგრამ არ იჭერს მას (\d+)(?: ძაღლები) 5 კატასა და 10 ძაღლში , აღბეჭდილია 10
    \1 ჯგუფის შიგთავსი 1 (\d+)\+(\d+)=\2\+\1 ემთხვევა 5+10=10+5 და იღებს 5 და 10 , რომლებიც არიან ჯგუფების გადაღებაში
    \2 2 ჯგუფის შინაარსი

    Ancors

    Ancors მიუთითებენ პოზიციას შეყვანის სტრიქონში, სადაც უნდა ვეძებოთ მატჩი.

    წამყვანი აღწერა მაგალითი მატჩები
    ^ სტრიქონის დასაწყისი

    შენიშვნა: [^შიდა ფრჩხილებში] ნიშნავს "არა"

    ^\d+ ციფრების ნებისმიერი რაოდენობა სტრიქონის დასაწყისი.

    5 კატასა და 10 ძაღლში შეესაბამება 5

    $ სტრიქონის დასასრული \d+$ ციფრების ნებისმიერი რაოდენობა სტრიქონის ბოლოს.

    10-შიY

    (?<=) პოზიტიური ხედვა უკან (?<=Y)X ემთხვევა X გამოხატულებას როდესაც მას წინ უძღვის Y (ანუ, თუ X-ის უკან არის Y)
    (? უარყოფითი ხედვა უკან (? ემთხვევა X გამოსახულებას, როდესაც მას წინ არ უძღვის Y

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

    მორგებული RegEx ფუნქციები Excel-ისთვის

    როგორც უკვე აღვნიშნეთ, Microsoft Excel-ს არ აქვს ჩაშენებული RegEx ფუნქციები. რეგულარული გამონათქვამების ჩასართავად, ჩვენ შევქმენით სამი მორგებული VBA ფუნქცია (ანუ მომხმარებლის მიერ განსაზღვრული ფუნქციები). შეგიძლიათ კოდების კოპირება ქვემოთ მიბმული გვერდებიდან ან ჩვენი ნიმუშიდან. სამუშაო წიგნი და შემდეგ ჩასვით საკუთარ Excel ფაილებში.

    როგორ მუშაობს VBA RegExp ფუნქციები

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

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

    RegExp ობიექტს აქვს 4 თვისება:

    • Pattern - არის ნიმუში შესატყვისი შეყვანის სტრიქონში.
    • გლობალური - აკონტროლებს, მოიძებნოს ყველა შესატყვისი შეყვანის სტრიქონში თუ მხოლოდ პირველში. ჩვენს ფუნქციებში, ის დაყენებულია True-ზე, რათა მიიღოთ ყველა შესატყვისი .
    • MultiLine - განსაზღვრავს, დაემთხვა თუ არა შაბლონს სტრიქონების წყვეტებს შორის მრავალსტრიქონიანი სტრიქონებით, თუ მხოლოდ პირველ რიგში. ჩვენს კოდებში ის დაყენებულია True-ზე, რათა მოძებნოს ყველა სტრიქონში .
    • IgnoreCase - განსაზღვრავს, არის თუ არა რეგულარული გამონათქვამი რეგისტრის მგრძნობიარე (ნაგულისხმევი) თუ რეგისტრის-. insensitive (დაყენებულია True-ზე). ჩვენს შემთხვევაში, ეს დამოკიდებულია იმაზე, თუ როგორ დააკონფიგურირებთ არასავალდებულო შემთხვევის_შემთხვევის პარამეტრს. ნაგულისხმევად, ყველა ფუნქცია გადაწყვეტილებისადმი მგრძნობიარეა .

    VBA RegExp შეზღუდვები

    Excel VBA ახორციელებს აუცილებელ რეგექსის შაბლონებს, მაგრამ მას არ გააჩნია მრავალი მოწინავე ფუნქცია. ხელმისაწვდომია .NET, Perl, Java და სხვა regex ძრავებში. მაგალითად, VBA RegExp არ უჭერს მხარს ხაზოვან მოდიფიკატორებს, როგორიცაა (?i) დიდი ასოების შესატყვისად ან (?m) მრავალხაზოვანი რეჟიმისთვის, lookbehinds, POSIX კლასებისთვის, რამდენიმეს დასახელებისთვის.

    Excel Regex Match ფუნქცია

    ფუნქცია RegExpMatch ეძებს შეყვანის სტრიქონს ტექსტისთვის, რომელიც ემთხვევა რეგულარულ გამონათქვამს და აბრუნებს TRUE-ს, თუ შესატყვისი აღმოჩნდება, FALSE წინააღმდეგ შემთხვევაში.

    RegExpMatch(ტექსტი, ნიმუში, [ match_case])

    სად:

    • ტექსტი (აუცილებელია) - ერთი ან მეტი სტრიქონი საძიებლად.
    • ნიმუში ( საჭირო) - რეგულარულიშესატყვისი გამოხატულება.
    • შემთხვევის_შემთხვევა (არასავალდებულო) - შესატყვისი ტიპი. TRUE ან გამოტოვებული - რეგისტრირებულია; FALSE - რეგისტრებისადმი მგრძნობიარე

    ფუნქციის კოდი არის აქ.

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

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

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

    ნიმუში : \b[A-Z]{2}-\d{4}\b

    სადაც [A-Z]{2} ნიშნავს ნებისმიერ 2 დიდ ასოს A-დან Z-მდე და \d{4 } ნიშნავს ნებისმიერ 4 ციფრს 0-დან 9-მდე. სიტყვის საზღვარი \b მიუთითებს, რომ SKU არის ცალკე სიტყვა და არა უფრო დიდი სტრიქონის ნაწილი.

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

    თუ ვივარაუდებთ, რომ ორიგინალური სტრიქონი არის A5-ში, ფორმულა ასე გამოიყურება:

    =RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")

    მოხერხებულობისთვის, შეგიძლიათ შეიყვანოთ რეგულარული გამოხატულება ცალკე უჯრედში და გამოიყენოთ აბსოლუტური მითითება ($A$2) ნიმუში არგუმენტისთვის ტ. ეს უზრუნველყოფს, რომ უჯრედის მისამართი უცვლელი დარჩეს, როდესაც ფორმულას სხვა უჯრედებში დააკოპირებთ:

    =RegExpMatch(A5, $A$2)

    თქვენი ტექსტის ლეიბლის საჩვენებლად TRUE და FALSE ნაცვლად, ჩადეთ RegExpMatch IF ფუნქციაში და მიუთითეთ სასურველი ტექსტები value_if_true და value_if_false პლუს 5 იძლევა 15 , ემთხვევა 15

    \b სიტყვის საზღვარი \bjoy\b შეესაბამება სიხარული როგორც ცალკე სიტყვა, მაგრამ არა სასიამოვნო . \B არა სიტყვის საზღვარი \Bjoy\B შეესაბამება სიხარული სასიამოვნო , მაგრამ არა როგორც ცალკე სიტყვა.

    ალტერნატივის (OR) კონსტრუქცია

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

    კონსტრუირება აღწერა მაგალითი შემთხვევები

    მაიკლ ბრაუნი არის ტექნოლოგიის ერთგული ენთუზიასტი, რომელსაც აქვს გატაცება პროგრამული ინსტრუმენტების გამოყენებით რთული პროცესების გამარტივებისთვის. ტექნოლოგიურ ინდუსტრიაში ათწლეულზე მეტი გამოცდილებით, მან დახვეწა თავისი უნარები Microsoft Excel-სა და Outlook-ში, ასევე Google Sheets-სა და Docs-ში. მაიკლის ბლოგი ეძღვნება თავისი ცოდნისა და გამოცდილების სხვებს გაზიარებას, ადვილად მისაწვდომ რჩევებსა და გაკვეთილებს პროდუქტიულობისა და ეფექტურობის გასაუმჯობესებლად. მიუხედავად იმისა, გამოცდილი პროფესიონალი ხართ თუ დამწყები, მაიკლის ბლოგი გთავაზობთ ღირებულ შეხედულებებსა და პრაქტიკულ რჩევებს ამ აუცილებელი პროგრამული ხელსაწყოებიდან მაქსიმალური სარგებლობის მისაღებად.