Excel-д мөрүүдийг задлах Regex (нэг эсвэл бүх тохирох)

  • Үүнийг Хуваалц
Michael Brown

Энэ зааварт та Excel-д өгөгдсөн загварт тохирох дэд мөрүүдийг олох, задлахын тулд ердийн илэрхийллийг хэрхэн ашиглах талаар сурах болно.

Microsoft Excel нь текст задлах хэд хэдэн функцээр хангадаг. эсүүдээс. Эдгээр функцууд нь таны ажлын хуудсан дээрх мөрийг задлах ихэнх сорилтуудыг даван туулж чадна. Ихэнх, гэхдээ бүгд биш. Текстийн функцууд бүдрэх үед байнгын хэллэгүүд аврахаар ирдэг. Хүлээгээрэй… Excel-д RegEx функц байхгүй! Үнэн, ямар ч суулгасан функц байхгүй. Гэхдээ таныг өөрийн гэсэн ашиглахад саад болох зүйл байхгүй :)

    Excel VBA Regex-ийн мөрүүдийг задлах

    Өөрийн Excel-д Regex Extract функцийг нэмэхийн тулд, Дараах кодыг VBA засварлагч дээр буулгана уу. VBA-д ердийн илэрхийлэлүүдийг идэвхжүүлэхийн тулд бид Microsoft-ын суулгасан RegExp объектыг ашиглаж байна.

    Нийтийн функц RegExpExtract(текст Мөр хэлбэрээр , загвар мөр зэрэг , Нэмэлт instance_num Бүхэл тоогоор = 0, Сонголттой тохирох_case As Boolean = True ) Dim text_matches() As String Dim matches_index As Integer on Error GoTo ErrHandl RegExpExtract = "" Тохируулах regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = загвар regex.Global = Үнэн regex.MultiLine = Үнэн бол үнэн бол = regex. ignorecase = Худал Өөрөөр regex.ignorecase = Хэрэв багц таарвал үнэн төгсгөл = regex.Execute(текст) Хэрэв 0 < matches.Count Дараа нь Хэрэв (0 = instance_num) Дараа нь ReDim текст_матч(матч.Тоо - 1, 0) Тохиромжтой_индексийн хувьд = 0VBA RegExp, би таныг илүү хүчирхэг .NET Regex функцүүдийн талаар ярилцсан дараагийн хэсгийг уншихыг зөвлөж байна.

    Excel дээр текст задлахад зориулсан .NET дээр суурилсан захиалгат Regex функц

    VBA RegExp функцүүдээс ялгаатай нь Excel-ийн ямар ч хэрэглэгч бичиж болно, .NET RegEx нь хөгжүүлэгчийн хүрээ юм. Microsoft .NET Framework нь Perl 5-тай нийцэх бүрэн боломжтой ердийн илэрхийллийн синтаксийг дэмждэг. Энэ нийтлэл танд ийм функцүүдийг хэрхэн бичихийг заагаагүй (би програмист биш бөгөөд үүнийг хэрхэн хийх талаар өчүүхэн ч санаа алга :)

    Стандарт .NET RegEx хөдөлгүүрээр боловсруулсан дөрвөн хүчирхэг функцийг манай хөгжүүлэгчид аль хэдийн бичсэн бөгөөд Ultimate Suite-д оруулсан болно. Доор бид Excel дээр текст задлахад зориулагдсан функцын зарим практик хэрэглээг харуулах болно.

    Зөвлөмж. .NET Regex синтаксийн талаарх мэдээллийг .NET Regular Expression Language-ээс авна уу.

    Энгийн хэллэг ашиглан Excel-д хатгалтыг хэрхэн задлах вэ

    Танд Ultimate Suite-ийн хамгийн сүүлийн хувилбарыг суулгасан гэж үзвэл ердийн илэрхийлэл ашиглан текст задлах нь дараах хоёр үе шаттай болно:

    1. Ablebits Data табын Text бүлгийн Regex Tools дээр дарна уу.
    2. Regex Tools хэсэгт эх өгөгдлийг сонгоод Regex загвараа оруулаад Extract сонголтыг сонгоно уу. Үр дүнг утга биш харин захиалгат функцээр авахын тулд Томьёо болгон оруулах -г сонгохайрцаг. Дуусаад Extract товчийг дарна уу.

    Үр дүн таны анхны өгөгдлийн баруун талд шинэ баганад гарч ирнэ:

    AblebitsRegexExtract синтакс

    Манай захиалгат функц нь дараах синтакстай:

    AblebitsRegexExtract(лавлагаа, ердийн_илэрхийлэл)

    Үүнд:

    • Лавлагаа (шаардлагатай) - эх мөрийг агуулсан нүдний лавлагаа.
    • Энгийн_илэрхийлэл (шаардлагатай) - тохирох регекс загвар.

    Анхаарах зүйл! Энэ функц нь зөвхөн Excel-д зориулсан Ultimate Suite суулгасан машинууд дээр ажилладаг.

    Ашиглалтын тэмдэглэл

    Сургалтын муруйгаа илүү жигд болгож, туршлагаа илүү тааламжтай болгохын тулд дараах зүйлсийг анхаарна уу:

    1. Томьёо үүсгэхийн тулд та манай Regex Tools эсвэл Excel-ийн Insert function харилцах цонхыг ашиглаж эсвэл нүдэнд функцийн нэрийг бүтэн бичиж болно. Томьёог оруулсны дараа та үүнийг ямар ч үндсэн томьёотой адил удирдах (засах, хуулах, зөөх) боломжтой.
    2. Таны Регекс хэрэгслүүд самбар дээр оруулсан загвар нь 2-р аргумент руу шилждэг. Мөн тогтмол илэрхийлэлийг тусдаа нүдэнд хадгалах боломжтой. Энэ тохиолдолд 2-р аргументын хувьд нүдний лавлагааг ашиглана уу.
    3. Функц нь анхны олсон тохирохыг -г задалдаг.
    4. Өгөгдмөлөөр, функц нь цэгсэг байна. -мэдрэмжтэй . Том жижиг үсгээр тааруулахын тулд (?i) загварыг ашиглана уу.
    5. Хэрэв тохирох зүйл олдохгүй бол #N/A алдаа гарна.буцаасан.

    Хоёр тэмдэгтийн хооронд стринг задлах регекс

    Хоёр тэмдэгтийн хооронд текст авахын тулд та авах бүлэг эсвэл эргэн тойрон харах аргыг ашиглаж болно.

    За ингээд үзье. та хаалт хооронд текст задлах гэж байна гэж хэлнэ үү. Бүлэг авах нь хамгийн хялбар арга юм.

    Загвар 1 : \[(.*?)\]

    Араа болон урагшаа эерэгээр харвал үр дүн нь яг таарна. адилхан.

    Загвар 2 : (?<=\[)(.*?)(?=\])

    Манай баривчлах бүлэгт анхаарлаа хандуулна уу. (.*?) нь эхний [ эхний ] хүртэлх хоёр хаалтны хоорондох текстийг залхуу хайлт гүйцэтгэдэг. Асуултын тэмдэггүй (.*) баривчлах бүлэг нь шуналтай хайлт хийж, эхний [ сүүлчийн ] хүртэлх бүх зүйлийг барьж авна.

    А2 дахь загвартай бол томьёо нь дараах байдалтай байна. дараах байдалтай байна:

    =AblebitsRegexExtract(A5, $A$2)

    Бүх тохирохыг хэрхэн авах вэ

    Урьд дурьдсанчлан AblebitsRegexExtract функц нь зөвхөн нэг тохирохыг задлах боломжтой. Бүх тохирохыг авахын тулд та өмнө нь ярилцсан VBA функцийг ашиглаж болно. Гэсэн хэдий ч, нэг анхааруулга байна - VBA RegExp нь бүлгүүдийг авахыг дэмждэггүй тул дээрх загвар нь "хязгаар" тэмдэгтүүдийг, манай тохиолдолд хаалтанд буцаана.

    =TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))

    Амрахын тулд. хаалтанд байгаа бол дараах томьёог ашиглан тэдгээрийг хоосон тэмдэгт мөрүүдээр ("") СОЛОНГО:

    =SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")

    Уншихад илүү хялбар болгохын тулд бид зааглагчийн хувьд таслалыг ашиглаж байна.

    Хоёр мөрийн хооронд текст задлах регекс

    Бидний ажилласан аргашууд утгаар нь тайлбарлана уу).

  • (?:[A-Za-z\d\-\.]{2,255}\.)? - хэрэв байгаа бол гуравдагч, дөрөвдүгээр түвшний гэх мэт домэйнүүдийг тодорхойлохын тулд аваагүй бүлэг (манай жишээ URL-д мобайл ). Эхний загварт энэ нь бүх дэд домайнуудыг олборлолтод оруулахын тулд илүү том барих бүлэгт байрлуулсан. Дэд домайн нь 2-оос 255 тэмдэгтийн урттай байж болох тул {2,255} хэмжигч болно.
  • ([A-Za-z\d\-]{1,63}\.[A-Za-z] {2,24}) - хоёр дахь түвшний домэйн ( ablebits ) болон дээд түвшний домэйнийг ( com ) задлах группийг барьж байна. Хоёр дахь түвшний домэйны хамгийн их урт нь 63 тэмдэгт байна. Одоогийн байгаа хамгийн урт дээд түвшний домэйн нь 24 тэмдэгт агуулж байна.
  • А2-д ямар тогтмол илэрхийлэл оруулахаас хамаарч доорх томьёо нь өөр үр дүнг гаргана:

    =AblebitsRegexExtract(A5, $A$2)

    Бүх дэд домайнуудтай бүтэн домайн нэрийг задлах регекс:

    Дэд домайнгүй хоёр дахь түвшний домайн -г задлах регекс:

    Тэгж Excel-ийн текстийн хэсгийг ердийн илэрхийлэл ашиглан задлах арга юм. Уншиж байгаад баярлалаа, ирэх долоо хоногт манай блог дээр уулзахыг тэсэн ядан хүлээж байна!

    Татаж авах боломжтой зүйлс

    Excel Regex Extract жишээнүүд (.xlsm файл)

    Ultimate Suite-н туршилтын хувилбар (.exe файл)

    \b(0?[0-9]matches.Count - 1 text_matches(match_index, 0) = matches.Item(maches_index) Next matches_index RegExpExtract = text_matches Бусад RegExpExtract = matches.Item(instance_num - 1) Хэрэв төгсгөл бол Гарах функц ErrHandl: RegExpExtractx = CVErVrVr.

    Хэрэв танд VBA-г ашиглах туршлага бага байгаа бол алхам алхмаар хэрэглэгчийн гарын авлага танд тус болно: Excel-д VBA кодыг хэрхэн оруулах талаар.

    Анхаар. Функц ажиллахын тулд файлаа макро идэвхжүүлсэн ажлын ном (.xlsm) болгон хадгалахаа мартуузай.

    RegExpExtract синтакс

    RegExpExtract функц нь ердийн илэрхийлэлтэй тохирох утгыг оролтын стрингээс хайж, нэг буюу бүх тохирохыг задалдаг.

    Функц нь дараах синтакстай байна. :

    RegExpExtract(текст, хээ, [жишээний_тоо], [тохируулах_цэрэг])

    Хаана:

    • Текст (шаардлагатай) - хайх текстийн мөр.
    • Загвар (шаардлагатай) - тохирох тогтмол илэрхийлэл. Томьёонд шууд оруулсан тохиолдолд загварыг давхар хашилтанд оруулах ёстой.
    • Жишээний_тоо (заавал биш) - аль жишээг задлахыг заадаг серийн дугаар. Хэрэв орхигдуулсан бол олдсон бүх таарчуудыг буцаана (өгөгдмөл).
    • Тохирох_хэрэгслэл (заавал биш) - текстийн том үсгийг тааруулах эсвэл үл тоомсорлох эсэхийг тодорхойлно. Хэрэв ҮНЭН эсвэл орхигдуулсан (өгөгдмөл) бол том жижиг жижиг жижиг үсгийг тохируулна; Хэрэв ХУДАЛ - жижиг жижиг жижиг.

    Функц нь Excel 365, Excel 2021, Excel-ийн бүх хувилбарт ажилладаг.2019, Excel 2016, Excel 2013 болон Excel 2010.

    RegExpExtract-ийн талаар таны мэдэх ёстой 4 зүйл

    Өөрийн Excel-ийн функцийг үр дүнтэй ашиглахын тулд хэд хэдэн чухал зүйлийг анхаарч үзэх хэрэгтэй:

    1. Өгөгдмөлөөр, функц нь энэ жишээнд үзүүлсэн шиг хөрш зэргэлдээх нүднүүдэд бүх олдсон тохирохыг буцаана. Тодорхой тохиолдлыг олж авахын тулд жишээний_тоо аргументад харгалзах дугаарыг оруулна уу.
    2. Өгөгдмөл байдлаар, функц нь үсгийн том үсгийн мэдрэмжтэй байна. Том жижиг жижиг үсгээр тааруулахын тулд тэмцэх_цэг аргументыг ХУДАЛ болгож тохируулна уу. VBA-н хязгаарлалтын улмаас том жижиг жижиг үсэг үл хамаарах бүтэц (?i) ажиллахгүй.
    3. Хэрэв хүчинтэй загвар олдохгүй бол функц юу ч буцаадаггүй (хоосон мөр).
    4. Хэрэв загвар буруу бол #VALUE! алдаа гарлаа.

    Та энэ тусгай функцийг ажлын хуудсандаа ашиглаж эхлэхээсээ өмнө энэ нь ямар чадвартайг ойлгох хэрэгтэй, тийм үү? Доорх жишээнүүд нь нийтлэг хэрэглээний цөөн хэдэн тохиолдлыг багтаасан бөгөөд Динамик массив Excel (Microsoft 365 ба Excel 2021) болон уламжлалт Excel (2019 ба түүнээс өмнөх хувилбарууд) дээр яагаад үйлдэл өөр байж болохыг тайлбарласан болно.

    Тайлбар. Гадагш regex жишээнүүд нь үлгэрийн энгийн өгөгдлийн багцад зориулагдсан болно. Тэдгээр нь таны бодит ажлын хуудсан дээр өө сэвгүй ажиллах болно гэдгийг бид баталж чадахгүй. Тогтмол илэрхийлэл бичих нь төгс төгөлдөрт хүрэх төгсгөлгүй зам гэдэгтэй regex-ийн туршлагатай хүмүүс санал нийлэх болно - бараг үргэлж хийх арга зам байдаг.Энэ нь илүү гоёмсог эсвэл илүү өргөн хүрээний оролтын өгөгдлийг боловсруулах чадвартай.

    Тэмдэглэлээс тоо гаргаж авах регекс

    "Энгийнээс нийлмэл рүү" заах үндсэн зарчмын дагуу бид маш энгийн тохиолдлоор эхлэх болно: мөрөөс тоо гаргаж авах.

    Таны шийдэх хамгийн эхний зүйл бол аль дугаарыг авах вэ: эхний, сүүлчийн, тодорхой тохиолдох эсвэл бүх тоо.

    Эхний дугаарыг задлах

    Энэ нь regex-ийн авч чадах хамгийн энгийн зүйл юм. \d нь 0-ээс 9 хүртэлх цифрийг, + нь нэг буюу хэд хэдэн удаа гэсэн утгатай болохыг харгалзан үзвэл бидний ердийн илэрхийлэл нь дараах хэлбэртэй байна:

    Хэв маяг : \d+

    Set жишээний_тоо -г 1-д шилжүүлснээр та хүссэн үр дүнг авах болно:

    =RegExpExtract(A5, "\d+", 1)

    А5 нь анхны мөр юм.

    Тохиромжтой болгохын тулд та оруулах боломжтой. хээг урьдчилан тодорхойлсон нүдэнд ($A$2 ) оруулаад хаягийг нь $ тэмдгээр түгжинэ:

    =RegExpExtract(A5, $A$2, 1)

    Сүүлийн дугаарыг авах

    Мөр дэх сүүлчийн тоог гаргаж авахын тулд , энд ашиглах загвар байна:

    Загвар : (\d+)(?!.*\d)

    Хүний хэл рүү орчуулсан , энэ нь: өөр ямар ч тоогоор дагаж мөрддөггүй (хаашаа ч биш, шууд биш) тоог ол. Үүнийг илэрхийлэхийн тулд бид сөрөг харагдац (?!.*\d) ашиглаж байгаа бөгөөд энэ нь хээний баруун талд өмнө нь хэдэн тэмдэгт байгаагаас үл хамааран өөр цифр (\d) байх ёсгүй гэсэн үг юм.

    =RegExpExtract(A5, "(\d+)(?!.*\d)")

    Зөвлөмж:

    • тодорхой тохиолдол авахын тулд загвар болон тохирох цувааг \d+ ашиглана уу. жишээний_тоо -д зориулсан тоо.
    • бүх тоог задлах томьёог дараагийн жишээнд авч үзнэ.

    Бүх тохирохыг задлах регекс

    Бидний жишээг бага зэрэг түлхэж үзвэл, та нэг мөр биш харин бүх тоог авахыг хүсч байна гэж бодъё.

    Та санаж байгаачлан задалсан тохирлын тоог нэмэлт <1-ээр удирддаг>жишээний_тоо аргумент. Өгөгдмөл нь бүгд таарч байгаа тул та энэ параметрийг орхигдуулж болно:

    =RegExpExtract(A2, "\d+")

    Томьёо нь нэг нүдэнд маш сайн ажилладаг боловч Dynamic Array Excel болон динамик бус хувилбаруудад ялгаатай байна.

    Excel 365 болон Excel 2021

    Динамик массивыг дэмждэг тул тооцоолсон бүх үр дүнг харуулахын тулд ердийн томьёо нь шаардлагатай тооны нүдэнд автоматаар асгардаг. Excel-ийн хувьд үүнийг асгарсан муж гэж нэрлэдэг:

    Excel 2019 ба түүнээс доош хувилбар

    Динамикийн өмнөх Excel-д дээрх томьёо нь зөвхөн нэг тохиролыг буцаана. Олон тооны тохирол авахын тулд та үүнийг массивын томьёо болгох хэрэгтэй. Үүний тулд нүднүүдийн мужийг сонгоод томьёо бичээд Ctrl + Shift + Enter дарж дуусгана уу.

    Энэ аргын сул тал нь "нэмэлт нүд"-д гарч ирэх #N/A алдаа юм. . Харамсалтай нь энэ талаар юу ч хийж чадахгүй (IFERROR ч, IFNA ч үүнийг засч чадахгүй, харамсалтай нь).

    Бүх тохирохыг нэг нүдэнд задлах

    Өгөгдлийн баганыг боловсруулах үед дээрх арга нь ажиллахгүй нь ойлгомжтой. Энэ тохиолдолд хамгийн тохиромжтой шийдэлнэг нүдэн дэх бүх тоглолтыг буцаана. Үүнийг хийхийн тулд RegExpExtract-ийн үр дүнг TEXTJOIN функцэд үйлчилж, тэдгээрийг таслал, хоосон зайгаар дуртай таслалаар тусгаарлана уу:

    =TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))

    Тайлбар. TEXTJOIN функц нь зөвхөн Microsoft 365, Excel 2021 болон Excel 2019-д зориулагдсан Excel-д байдаг тул томьёо нь хуучин хувилбаруудад ажиллахгүй.

    Текстийг мөрөөс задлах регекс

    Текстийг задлах Үсэг, тоон тэмдэгт мөр нь Excel дээр нэлээд төвөгтэй ажил юм. Regex-ийн тусламжтайгаар энэ нь бялуу шиг хялбар болно. Цифр биш бүх зүйлд тааруулахын тулд үгүйсгэсэн анги ашиглана уу.

    Загвар : [^\d]+

    Тус тусад нь нүднүүдэд дэд мөрүүдийг авахын тулд (асгарах хүрээ) , томьёо нь:

    =RegExpExtract(A5, "[^\d]+")

    Бүх тохирохыг нэг нүдэнд гаргахын тулд RegExpExtract функцийг TEXTJOIN-д дараах байдлаар байрлуулна:

    =TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))

    Рэгексийг стрингээс и-мэйл хаягийг задлах

    Олон өөр мэдээлэл агуулсан стрингээс имэйл хаяг гаргахын тулд имэйл хаягийн бүтцийг хуулбарласан тогтмол илэрхийлэл бичнэ үү.

    Загвар : [\w\.\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,24}

    Энэ регексийг задлах , эндээс бид олж авна:

    • [\w\.\-]+ нь 1 буюу түүнээс олон үсэг, тоон тэмдэгт, доогуур зураас, цэг болон зураас агуулсан хэрэглэгчийн нэр юм.
    • @ тэмдэг
    • [A-Za-z0-9\.\-]+ нь том жижиг үсэг, цифр, зураас, цэгээс (тохиолдолд) бүрдсэн домэйн нэр юм.дэд домайнуудын). Энд доогуур зураас оруулахыг хориглодог тул ямар ч үсэг, цифр эсвэл доогуур зураастай таарах \w-ийн оронд 3 өөр тэмдэгтийн багцыг (A-Z a-z, 0-9) ашигладаг.
    • \.[A-Za-z ]{2,24} нь дээд түвшний домэйн юм. Араас нь том жижиг үсгээр бичсэн цэгээс бүрдэнэ. Дээд түвшний домайнуудын ихэнх нь 3 үсэгтэй (жишээ нь .com .org, .edu гэх мэт) боловч онолын хувьд 2-24 үсэг (хамгийн урт бүртгэгдсэн TLD) байж болно.

    Мөр нь A5, загвар нь A2 байна гэж үзвэл имэйл хаягийг задлах томьёо нь:

    =RegExpExtract(A5, $A$2)

    Имэйлээс домэйн гаргаж авах регекс

    Хэзээ Имэйл домэйныг задлах үед хамгийн түрүүнд @ тэмдэгтийн дараах текстийг олохын тулд авах бүлэг ашиглах болно.

    Загвар : @([A-Za-z0 -9\.\-]+\.[A-Za-z]{2,24})

    Үүнийг манай RegExp функцэд үйлчилнэ үү:

    =RegExpExtract(A5, "@([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})")

    Мөн та дараах үр дүнг авах болно:

    Сонгодог ердийн илэрхийллүүдийн хувьд авах бүлгийн гаднах бүх зүйлийг задлахад оруулахгүй. VBA RegEx яагаад өөрөөр ажилладаг ба "@"-г бас авдаг гэдгийг хэн ч мэдэхгүй. Үүнээс салахын тулд эхний тэмдэгтийг хоосон тэмдэгтээр солих замаар хасаж болно.

    =REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, "")

    Утасны дугаарыг задлах энгийн илэрхийлэл

    Утасны дугаар олон янзаар бичиж болох тул бүх зүйлд тохирсон шийдлийг олох нь бараг боломжгүй юм(\d{4}from string

    Огноог задлах ердийн илэрхийлэл нь мөр дотор огноо гарч ирэх форматаас хамаарна. Жишээ нь:

    1/1/21 эсвэл 01/01/2021 гэх мэт огноог задлахын тулд regex нь: \d{1,2}\/\d{1,2}\/(\d) {4}нөхцөл байдал. Гэсэн хэдий ч та өгөгдлийн багцдаа ашигласан бүх форматыг бичиж, тэдгээрийг тааруулахыг оролдож болно.

    Энэ жишээний хувьд бид эдгээр форматын аль нэг дэх утасны дугаарыг задлах regex үүсгэх гэж байна:

    (123) 345-6789

    (123) 345 6789

    (123)3456789

    123- 345-6789

    123.345.6789

    123 345 6789

    1233456789

    Загвар : \(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b

    • Эхний хэсэг \(?\d{3} нь тэг эсвэл нэг нээх хаалтанд дараа нь гурван оронтой d{3} таарч байна.
    • [-\. \)]* хэсэг нь дөрвөлжин хаалтанд 0 ба түүнээс дээш удаа гарч ирэх ямар ч тэмдэгтийг хэлнэ: зураас, цэг, зай эсвэл хаалтын хаалт.
    • Дараа нь бид гурван оронтой дахин d{3}-ийн араас бичигдэнэ. дурын зураас, цэг эсвэл зай [-\. ]? 0 эсвэл 1 удаа гарч ирнэ.
    • Үүний дараа \d{4} дөрвөн оронтой бүлэг байна.
    • Эцэст нь бид утасны дугаар гэдгийг тодорхойлох үгийн хил \b байна. хайх нь том тооны хэсэг байж болохгүй.

    Бүтэн томьёо нь дараах хэлбэртэй байна:

    =RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")

    Дээрх regex нь цөөн хэдэн зүйлийг буцаана гэдгийг анхаарна уу. 123) 456 7899 эсвэл (123 456 7899) гэх мэт худал эерэг үр дүн. Доорх хувилбар нь эдгээр асуудлыг зассан. Гэхдээ энэ синтакс нь зөвхөн VBA RegExp функцэд ажилладаг ба сонгодог ердийн илэрхийлэлд биш.

    Загвар : (\(\d{3}\)Хоёр тэмдэгтийн хоорондох текстийг татахад зориулагдсан out нь хоёр мөрийн хооронд текст задлахад мөн ажиллах болно.

    Жишээ нь, "туршилт 1" ба "тест 2"-ын хоорондох бүх зүйлийг авахын тулд дараах тогтмол илэрхийллийг ашиглана уу.

    Загвар : тест 1(.*?)тест 2

    Бүрэн томьёо нь:

    =AblebitsRegexExtract(A5, "test 1(.*?)test 2")

    URL-аас домэйн гаргаж авах регекс

    Хэвийн илэрхийлэлтэй байсан ч URL-аас домэйн нэрийг задлах нь тийм ч энгийн ажил биш юм. Энэ заль мэхийг хийдэг гол элемент нь бүлэглэлүүдийг барьж авахгүй байх явдал юм. Өөрийн эцсийн зорилгоос хамааран доорх регексүүдийн аль нэгийг сонгоно уу.

    Дэд домайнуудыг агуулсан бүтэн домайн нэр авахын тулд

    Загвар : (?: https?\:

    Майкл Браун бол програм хангамжийн хэрэгслийг ашиглан нарийн төвөгтэй процессуудыг хялбаршуулах хүсэл эрмэлзэлтэй, технологид дуртай хүн юм. Технологийн салбарт арав гаруй жил ажилласан туршлагатай тэрээр Microsoft Excel, Outlook, мөн Google Sheets болон Docs дээр ур чадвараа дээшлүүлсэн. Майклын блог нь өөрийн мэдлэг, туршлагаа бусадтай хуваалцах, бүтээмж, үр ашгийг дээшлүүлэхэд хялбар зөвлөмж, зааварчилгаа өгөх зорилготой юм. Та туршлагатай мэргэжилтэн эсвэл анхлан суралцаж байгаа эсэхээс үл хамааран Майклын блог нь эдгээр чухал програм хангамжийн хэрэгслээс хамгийн их ашиг хүртэх талаар үнэ цэнэтэй ойлголт, практик зөвлөгөөг санал болгодог.