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

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

Სარჩევი

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

როდესაც გჭირდებათ გარკვეული მნიშვნელობის პოვნა დიაპაზონში უჯრედებიდან, თქვენ იყენებთ MATCH ან XMATCH ფუნქციას. როდესაც ეძებთ კონკრეტულ სტრიქონს უჯრედში, სასარგებლოა FIND და SEARCH ფუნქციები. და როგორ იცით, შეიცავს თუ არა უჯრედი მოცემულ შაბლონს შესაბამის ინფორმაციას? ცხადია, რეგულარული გამონათქვამების გამოყენებით. მაგრამ გარედან Excel არ უჭერს მხარს რეგექსებს! არ ინერვიულოთ, ჩვენ ვაიძულებთ მას :)

    Excel VBA Regex ფუნქცია სტრიქონების შესატყვისად

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

    საჯარო ფუნქცია RegExpMatch(input_range როგორც დიაპაზონი, ნიმუში როგორც სტრიქონი, არჩევითი match_case როგორც Boolean = True ) როგორც Variant Dim arRes() როგორც Variant 'მაივი შედეგების შესანახად Dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols As Long' მიმდინარე მწკრივის წყაროს დიაპაზონში, მიმდინარე სვეტის ინდექსი წყაროს დიაპაზონში, მწკრივების რაოდენობა, რაოდენობა სვეტები შეცდომის შესახებ GoTo ErrHandl RegExpMatch = arRes Set regex = CreateObject ("VBScript.RegExp") regex.pattern = ნიმუში regex.Global = True regex.MultiLine = True თუ True = match_case შემდეგ regex.ignorecase regex = False. Დასასრულიგამონათქვამები.

    ნიმუში : \b[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\- ]*[A-Za-z0-9]+\.[A-Za-z]{2,24}\b

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

    • მომხმარებლის სახელი შეიძლება შეიცავდეს ასოებს, ციფრებს, ქვედა ხაზებს, წერტილებს და დეფისებს. იმის გათვალისწინებით, რომ \w ემთხვევა ნებისმიერ ასოს, ციფრს ან ხაზს, ჩვენ ვიღებთ შემდეგ რეჟექსს: [\w\.\-]+
    • დომენის სახელი შეიძლება შეიცავდეს დიდ და პატარა ასოებს, ციფრები, დეფისები (მაგრამ არა პირველ ან ბოლო პოზიციაზე) და წერტილები (ქვედომენების შემთხვევაში). ვინაიდან ხაზგასმა დაუშვებელია, \w-ის ნაცვლად ვიყენებთ 3 სხვადასხვა სიმბოლოების კომპლექტს: [A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9 ]+
    • უმაღლესი დონის დომენი შედგება წერტილისგან, რასაც მოჰყვება დიდი და პატარა ასოები. ის შეიძლება შეიცავდეს 2-დან 24 ასო-მდე (ამჟამად არსებული ყველაზე გრძელი TLD): \.[A-Za-z]{2,24}

    შენიშვნა. ნიმუში ვარაუდობს, რომ დომენის სახელი შეიცავს 2 ან მეტ ალფანუმერულ სიმბოლოს.

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

    =RegExpMatch(A5, $A$2)

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

    ნიმუში : \b[\w\.\-]+@[a-z0-9]+[a- z0-9\.\-]*[a-z0-9]+\.[a-z]{2,24}\b

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

    =RegExpMatch(A5, $A$2, FALSE)

    Excel IF ფორმულა შესატყვისი რეგექსით

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

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

    IF(RegExpMatch(…), [value_if_true], [value_if_false])

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

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

    დათვლა, თუ regex შეესაბამება

    რადგან მშობლიურ Excel ფუნქციებს არ აქვს რეგულარული გამონათქვამები, ის შეუძლებელია რეგექსის ჩასმა პირდაპირ COUNTIS ან COUNTIFS ფუნქციაში. საბედნიეროდ, შეგიძლიათ ამ ფუნქციის ემულაცია ჩვენი მორგებული ფუნქციის გამოყენებით.

    ვთქვათ, რომ თქვენ იყენებდით რეგექსი ტელეფონის ნომრების შესატყვისად და შედეგების გამოტანა სვეტში B. იმის გასარკვევად, თუ რამდენი უჯრედი შეიცავს ტელეფონის ნომრებს, უბრალოდ გჭირდებათ TRUE მნიშვნელობების დათვლა B5:B9-ში. და ეს მარტივად შეიძლება გაკეთდეს სტანდარტული COUNTIF ფორმულის გამოყენებით:

    =COUNTIF(B5:B9, TRUE)

    არ გსურთ რაიმე დამატებითი სვეტები თქვენს სამუშაო ფურცელში? Არაა პრობლემა. იმის გათვალისწინებით, რომ ჩვენს მორგებულ ფუნქციას შეუძლია ერთდროულად რამდენიმე უჯრედის დამუშავება და Excel-ის SUM-ს შეუძლია დაამატო მნიშვნელობები მასივში, აი რას აკეთებთ:

    • მიაწოდეთ დიაპაზონის მითითება RegExpMatch-ზე, რათა ის დააბრუნებს TRUE და FALSE მნიშვნელობების მასივი.
    • გამოიყენეთ ორმაგი უარყოფა (--) ლოგიკური მნიშვნელობების იძულებით ერთეულებზე დანულები.
    • მიიღეთ SUM ფუნქცია მიღებულ მასივში 1-ებისა და 0-ების დასამატებლად.

    =SUM(--RegExpMatch(A5:A9, $A$2))

    Regex შესატყვისი Ultimate Suite-ით

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

    როგორ გამოვიყენოთ მორგებული RegexMatch ფუნქცია

    თუ ვივარაუდებთ, რომ დაინსტალირებული გაქვთ Ultimate Suite-ის უახლესი ვერსია ( 2021.4 ან უფრო ახალი), შეგიძლიათ შექმნათ Regex Match ფორმულა ორი მარტივი ნაბიჯით:

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

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

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

    ქვემოთ მოცემულ ეკრანის სურათზე ფუნქცია ამოწმებს A სვეტის სტრიქონები შეიცავს თუ არა 7 ციფრს. რიცხვები თუ არა.

    რჩევები:

    • ფუნქცია tion შეიძლება ჩასვა პირდაპირ უჯრედში სტანდარტული ფუნქციის ჩასმა დიალოგური ფანჯრის მეშვეობით, სადაც ის კატეგორიზებულია AblebitsUDFs .
    • ნაგულისხმევად, ფორმულას ემატება რეგულარული გამოხატულება, მაგრამ ასევე შეგიძლიათ შეინახოთ ის ცალკე საკანში. ამისათვის უბრალოდ გამოიყენეთ უჯრედის მითითება მე-2 არგუმენტისთვის.
    • ნაგულისხმევად, ფუნქცია არის case-sensitive . დიდი ასოების შესატყვისად გამოიყენეთ (?i) შაბლონი.

    დამატებითი ინფორმაციისთვის იხილეთ AblebitsRegexMatch ფუნქცია.

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

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

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

    Ultimate Suite 14- დღის სრულად ფუნქციონალური ვერსია (.exe ფაილი)

    თუ cntInputRows = input_range.Rows.Count cntInputCols = input_range.Columns.Count ReDim arRes(1 to cntInputCols, 1 to cntInputCols) iInputCurRow-ისთვის = 1 to cntInputRows for iInputCurlsnwt(inputCurgeCols) .Cells(iInputCurRow, iInputCurCol).Value) შემდეგი შემდეგი RegExpMatch = arRes გასვლის ფუნქცია ErrHandl: RegExpMatch = CVERr(xlErrValue) დასრულების ფუნქცია

    ჩასვით კოდი VBA რედაქტორში და თქვენი ახალი ფუნქციაა RegMatch

    შენიშვნა. კოდის ჩასმის შემდეგ გახსოვდეთ, რომ შეინახოთ თქვენი ფაილი მაკრო ჩართული სამუშაო წიგნის სახით (.xlsm).

    RegExpMatch სინტაქსი

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

    ჩვენს მორგებულ ფუნქციას აქვს 3 არგუმენტი - პირველი ორი სავალდებულოა და ბოლო არჩევითი:

    RegExpMatch(ტექსტი , ნიმუში, [შემთხვევა_შემთხვევა])

    სად:

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

    ფუნქცია მუშაობს Excel 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013 და Excel 2010-ის ყველა ვერსიაში.

    3 რამ თქვენ უნდა იცოდეს RegExpMatch-ის შესახებ

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

    1. ფუნქციას შეუძლია დაამუშაოს ერთი უჯრედი ან უჯრედების დიაპაზონი . ამ უკანასკნელ შემთხვევაში, შედეგები ბრუნდება მეზობელ უჯრედებში დინამიური მასივის ან დაღვრის დიაპაზონის სახით, როგორც ეს ნაჩვენებია ამ მაგალითში.
    2. ნაგულისხმევად, ფუნქცია არის შემთხვევისადმი მგრძნობიარე . ტექსტის რეგისტრის უგულებელყოფისთვის, დააყენეთ არგუმენტი შემთხვევა_შემთხვევით FALSE-ზე. VBA Regexp-ის შეზღუდვების გამო, რეგისტრებისადმი მგრძნობიარე ნიმუში (?i) არ არის მხარდაჭერილი.
    3. თუ სწორი ნიმუში ვერ მოიძებნა, ფუნქცია დააბრუნებს FALSE; თუ ნიმუში არასწორია , არის #VALUE! ჩნდება შეცდომა.

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

    როგორ გამოვიყენოთ regex სტრიქონების შესატყვისად Excel-ში

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

    ვთქვათ, რომ თქვენ გაქვთ უჯრედების დიაპაზონი (A5:A9), რომელიც შეიცავს სხვადასხვა დეტალებს ზოგიერთი ელემენტის შესახებ. გსურთ იცოდეთ რომელ უჯრედებს აქვთ SKU. თუ ვივარაუდებთ, რომ თითოეული SKU შედგება 2 დიდი ასოსგან, დეფისისა და 3 ციფრისგან, შეგიძლიათ დაამთხვიოთ ისინი შემდეგი გამონათქვამის გამოყენებით.

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

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

    დადგენილი ნიმუშით, ჩვენ შეგვიძლია გადავიდეთ ფორმულის დაწერაზე. არსებითად, მორგებული ფუნქციის გამოყენება არ განსხვავდება მშობლიური ფუნქციისგან. როგორც კი დაიწყებთ ფორმულის აკრეფას, ფუნქციის სახელი გამოჩნდება სიაში, რომელსაც შემოთავაზებულია Excel-ის ავტომატური დასრულება. თუმცა, არის რამდენიმე ნიუანსი დინამიური მასივის Excel-ში (Microsoft 365 და Excel 2021) და ტრადიციულ Excel-ში (2019 და უფრო ძველი ვერსიები).

    სტრიქონის შესატყვისი ერთ უჯრედში

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

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

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

    =RegExpMatch(A5, $A$2)

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

    ეს მეთოდიმშვენივრად მუშაობს Excel-ის ყველა ვერსიაში .

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

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

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

    Excel 365 და Excel 2021 , რომლებიც მხარს უჭერენ დინამიურ მასივებს, ის ასე მუშაობს - თქვენ აკრიფებთ ფორმულას პირველ უჯრედში, დააჭირეთ Enter-ს და ფორმულა ავტომატურად იღვრება ქვემოთ მოცემულ უჯრედებში.

    Excel 2019 და უფრო ადრე, ის მუშაობს მხოლოდ როგორც ტრადიციული CSE მასივის ფორმულა, რომელიც შეიყვანება უჯრედების დიაპაზონში და სრულდება Ctrl + Shift + Enter კლავიშების ერთად დაჭერით.

    Regex ნომრის შესატყვისად

    0-დან 9-მდე ნებისმიერი ერთი ციფრის შესატყვისად, გამოიყენეთ \d სიმბოლო რეგექსიში. თქვენი კონკრეტული ამოცანიდან გამომდინარე, დაამატეთ შესაფერისი რაოდენობრივი მაჩვენებელი ან შექმენით უფრო რთული ნიმუში.

    Regex ნებისმიერი რიცხვის შესატყვისად

    ნებისმიერი სიგრძის ნებისმიერი რიცხვის შესატყვისად, ჩადეთ + კვანტიფიკატორის შემდეგ / d სიმბოლო, რომელიც ამბობს, რომ მოძებნოთ რიცხვები, რომლებიც შეიცავს 1 ან მეტ ციფრს.

    ნიმუში : \d+

    =RegExpMatch(A5:A9, "\d+")

    Regex კონკრეტული სიგრძის რიცხვის შესატყვისად

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

    მაგალითად, ზუსტად 7 ციფრისგან შემდგარი ინვოისის ნომრების შესატყვისად გამოიყენეთ \d{7}. თუმცა, გთხოვთ გაითვალისწინოთ, რომ ის ემთხვევა 7-სროგორც მოსალოდნელი იყო:

    შენიშვნები:

    • საერთაშორისო კოდები არ არის შემოწმებული, ამიტომ ისინი შეიძლება იყოს ან არ იყოს.
    • რეგულარულ გამონათქვამებში, \s ნიშნავს ნებისმიერ უფსკრული სიმბოლოს, როგორიცაა ინტერვალი, ჩანართი, კარის დაბრუნება ან ახალი ხაზი. მხოლოდ სივრცეების დასაშვებად გამოიყენეთ [-\. ] ნაცვლად [-\.\s]-ის ნაცვლად.
    • Regex to NOT შესატყვისი სიმბოლო

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

      • [^13] დაემთხვევა ნებისმიერ სიმბოლოს, რომელიც არ არის 1 ან 3.
      • [^1-3] დაემთხვევა ნებისმიერ სიმბოლოს, რომელიც არ არის 1, 2 ან 3 (ანუ ნებისმიერი ციფრი 1-დან 3-მდე).

      ტელეფონის ნომრების სიაში, დავუშვათ, გსურთ იპოვოთ ის, ვისაც ქვეყნის კოდი არ აქვს. იმის გათვალისწინებით, რომ ნებისმიერი საერთაშორისო კოდი შეიცავს + ნიშანს, შეგიძლიათ გამოიყენოთ [^\+] სიმბოლოების კლასი, რათა იპოვოთ სტრიქონები, რომლებიც არ შეიცავს პლუს ნიშანს. მნიშვნელოვანია გვესმოდეს, რომ ზემოთ მოცემული გამოხატულება ემთხვევა ნებისმიერ სიმბოლოს, რომელიც არ არის +. იმის გამო, რომ ტელეფონის ნომერი შეიძლება იყოს სტრიქონში სადმე, და არა აუცილებლად დასაწყისში, * კვანტიფიკატორი ემატება ყოველი მომდევნო სიმბოლოს შესამოწმებლად. საწყისი ^ და დასასრული $ წამყვანები უზრუნველყოფს მთელი სტრიქონის დამუშავებას. შედეგად, ჩვენ ვიღებთ ქვემოთ მოცემულ რეგულარულ გამონათქვამს, რომელიც ამბობს: "ნუ ემთხვევა + სიმბოლოს სტრიქონში არცერთ პოზიციაზე".

      ნიმუში :^[^\+]*$

      =RegExpMatch(A5, "^[^\+]*$")

      Regex სტრიქონს არ ემთხვევა

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

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

      ნიმუში : ^((?! lemons).)*$

      ცხადია, აქ საჭიროა გარკვეული ახსნა. ნეგატიური მზერა (?! ლიმონები) იყურება მარჯვნივ, რათა დაინახოს, წინ არ არის სიტყვა „ლიმონები“. თუ "ლიმონები" არ არის, მაშინ წერტილი ემთხვევა ნებისმიერ სიმბოლოს, გარდა ხაზის წყვეტისა. ზემოაღნიშნული გამონათქვამი ასრულებს მხოლოდ ერთ შემოწმებას და * კვანტიფიკატორი იმეორებს მას ნულოვან ან მეტჯერ, ^-ით დამაგრებული სტრიქონის დასაწყისიდან $-ით დამაგრებული სტრიქონის ბოლომდე.

      ტექსტური რეგისტრის იგნორირება, ჩვენ დავაყენეთ მე-3 არგუმენტი FALSE-ზე, რათა ჩვენი ფუნქცია რეგისტრირებული იყოს:

      =RegExpMatch(A5, $A$2, FALSE)

      რჩევები და შენიშვნები:

      • ზემოაღნიშნული რეგექსი მუშაობს მხოლოდ ერთხაზიანი სტრიქონებისთვის. milti-line სტრიქონების შემთხვევაში, ^ და $ სიმბოლოები ემთხვევა თითოეული ხაზის დასაწყისს და დასასრულს, ნაცვლად შეყვანის სტრიქონის დასაწყისისა და დასასრულისა, ამიტომ რეგექსი ეძებს მხოლოდ პირველ სტრიქონში.
      • იმ სტრიქონების შესატყვისად, რომლებიც არ იწყება გარკვეული ტექსტით , გამოიყენეთ ჩვეულებრივი გამოთქმა, როგორიცაა ^(?! lemons).*$
      • სტრიქონების შესატყვისად, რომლებიც არ მთავრდება გარკვეული ტექსტით , ჩართეთბოლო სტრიქონი ამაგრებს საძიებო ნიმუშს: ^((?! lemons$).)*$

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

      კლასიკურ რეგულარულ გამონათქვამებში არსებობს სპეციალური ნიმუში რეგისტრის უგრძნობი შესატყვისი (?i), რომელიც არ არის მხარდაჭერილი VBA RegExp-ში. ამ შეზღუდვის დასაძლევად, ჩვენი მორგებული ფუნქცია იღებს მე-3 არჩევით არგუმენტს სახელად შემთხვევა_შემთხვევა . რეესტრის არმგრძნობიარე შესატყვისად, უბრალოდ დააყენეთ ის FALSE-ზე.

      ვთქვათ, რომ გსურთ განსაზღვროთ თარიღები, როგორიცაა 1-მარ-22 ან 01-მარ-2022. dd-mmm-yyyy და d-mmm-yyyy ფორმატების შესატყვისად, ჩვენ ვიყენებთ შემდეგ რეგულარულ გამოსახულებას.

      ნიმუში : \b\d{1,2}-(იანციფრები სტრიქონში ნებისმიერ ადგილას, 10-ციფრიანი ან 100-ნიშნა რიცხვის ჩათვლით. თუ ეს არ არის ის, რასაც თქვენ ეძებთ, ჩადეთ სიტყვის საზღვარი \b ორივე მხარეს.

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

      =RegExpMatch(A5:A9, "\b\d{7}\b")

      Regex ტელეფონის ნომრების შესატყვისად

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

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

      ნიმუში: (\(\d{3}\)

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