مەزمۇن جەدۋىلى
بۇ دەرسلىكتە ، سىز Excel دا دائىملىق ئىپادىلەش ئۇسۇلىنى ئىشلىتىپ ، مەلۇم قېلىپقا ماس كېلىدىغان تارماق بۆلەكلەرنى تېپىش ۋە ئېلىشنى ئۆگىنىسىز.
Microsoft Excel تېكىست ئېلىش ئۈچۈن بىر قاتار ئىقتىدارلارنى تەمىنلەيدۇ. ھۈجەيرىلەردىن. بۇ ئىقتىدارلار خىزمەت جەدۋىلىڭىزدىكى نۇرغۇن سىزىقلارنى چىقىرىش خىرىسلىرىغا تاقابىل تۇرالايدۇ. كۆپىنچىسى ، ئەمما ھەممىسى ئەمەس. Text فۇنكسىيەسى يىمىرىلسە ، دائىملىق ئىپادىلەر ياردەمگە كېلىدۇ. ساقلاش… Excel نىڭ RegEx ئىقتىدارى يوق! توغرا ، قۇرۇلمىغان ئىقتىدار يوق. ئەمما ئۆزىڭىزنىڭ ئىشلىتىشىڭىزگە توسقۇنلۇق قىلىدىغان ھېچ نەرسە يوق :) تۆۋەندىكى كودنى VBA تەھرىرلىگۈچكە چاپلاڭ. VBA دا دائىملىق ئىپادىلەش ئىقتىدارىنى قوزغىتىش ئۈچۈن ، بىز ئىچىگە قاچىلانغان Microsoft RegExp ئوبيېكتىنى ئىشلىتىۋاتىمىز. text_matches () String Dim match_index خاتالىقتا پۈتۈن سان سۈپىتىدە GoTo ErrHandl RegExpExtract = "" Set regex = CreateObject ("VBScript.RegExp") regex.pattern = ئەندىزە regex.Global = True regex.MultiLine = True Re True = match_case. ignorecase = False Else regex.ignorecase = True End If Set match = regex. ئىجرا (تېكىست) ئەگەر 0 & lt; match.Count ئۇنداقتا If (0 = example_num) ئۇنداقتا ReDim text_matches (match.Count - 1, 0) match_index = 0 ToVBA RegExp ، تېخىمۇ كۈچلۈك .NET Regex ئىقتىدارلىرى ھەققىدە مۇلاھىزە يۈرگۈزگەن كېيىنكى بۆلەكنى ئوقۇپ بېقىشىڭىزنى تەۋسىيە قىلىمەن. ھەر قانداق Excel ئىشلەتكۈچى تەرىپىدىن يازالايدۇ ، .NET RegEx ئاچقۇچىلارنىڭ دائىرىسى. Microsoft .NET Framework Perl 5 گە ماس كېلىدىغان تولۇق ئىقتىدارلىق دائىملىق ئىپادىلەش گرامماتىكىسىنى قوللايدۇ. بۇ ماقالە سىزگە بۇ خىل ئىقتىدارلارنى قانداق يېزىشنى ئۆگەتمەيدۇ (مەن پروگراممېر ئەمەس ، قانداق قىلىش توغرىسىدا ئازراقمۇ چۈشەنچىم يوق :)
ئۆلچەملىك .NET RegEx ماتورى بىر تەرەپ قىلغان تۆت كۈچلۈك ئىقتىدار ئاللىقاچان پروگراممېرلىرىمىز تەرىپىدىن يېزىلغان ۋە Ultimate Suite غا كىرگۈزۈلگەن. تۆۋەندە بىز Excel دا تېكىست چىقىرىش ئۈچۈن ئالاھىدە لايىھەلەنگەن ئىقتىدارنىڭ بىر قىسىم ئەمەلىي ئىشلىتىلىشىنى كۆرسىتىپ ئۆتىمىز.
كۆرسەتمە. .NET Regex گرامماتىكىسى ھەققىدىكى ئۇچۇرلارنى .NET دائىملىق ئىپادىلەش تىلىدىن كۆرۈڭ.
دائىملىق ئىپادىلەش ئۇسۇلى ئارقىلىق Excel دا قانداق قىلىپ سانجىپ چىقىرىمىز
Ultimate Suite نىڭ ئەڭ يېڭى نەشرىنى ئورناتقانلىقىڭىزنى پەرەز قىلساق ، دائىملىق ئىپادىلەش ئۇسۇلى ئارقىلىق تېكىست ئېلىش بۇ ئىككى باسقۇچقا قاينايدۇ:
- تېكىست سانلىق مەلۇمات بەتكۈچىدە ، تېكىست گۇرۇپپىسىدا ، Regex قوراللىرى نى چېكىڭ.
- Regex قوراللىرى كۆزنىكىدە ، مەنبە سانلىق مەلۇماتنى تاللاڭ ، Regex ئەندىزىڭىزنى كىرگۈزۈڭ ۋە ئېلىش تاللاشنى تاللاڭ. نەتىجىنى قىممەت ئەمەس ، بەلكى ئىختىيارى ئىقتىدار سۈپىتىدە قولغا كەلتۈرۈش ئۈچۈن ، فورمۇلا قىلىپ قىستۇرۇش نى تاللاڭbox. تاماملانغاندىن كېيىن ، ئېلىش كۇنۇپكىسىنى بېسىڭ.
نەتىجىلەر ئەسلى سانلىق مەلۇماتنىڭ ئوڭ تەرىپىدىكى يېڭى ئىستوندا كۆرۈنىدۇ:
AblebitsRegexExtract گرامماتىكىسى
بىزنىڭ ئىختىيارى فۇنكسىيەمىز تۆۋەندىكى گرامماتىكىغا ئىگە:
AblebitsRegexExtract (پايدىلىنىش ، دائىملىق_ ئىپادىلەش)قەيەردە:
- پايدىلىنىش ماتېرىيالى دائىملىق_ ئىپادىلەش (تەلەپ قىلىنىدۇ) - ماس كېلىدىغان regex ئەندىزىسى.
مۇھىم ئەسكەرتىش! بۇ ئىقتىدار پەقەت Excel قاچىلانغان Ultimate Suite قاچىلانغان ماشىنىلاردا ئىشلەيدۇ.
ئىشلىتىش خاتىرىلىرى
ئۆگىنىش ئەگرى سىزىقىڭىزنى تېخىمۇ راۋانلاشتۇرۇش ۋە تەجرىبىڭىزنى تېخىمۇ خۇشال قىلىش ئۈچۈن ، بۇ نۇقتىلارغا دىققەت قىلىڭ:
- فورمۇلا قۇرۇش ئۈچۈن ، بىزنىڭ Regex قورالى ياكى Excel نىڭ ئىقتىدار قىستۇر سۆزلىشىش رامكىسىنى ئىشلىتەلەيسىز ياكى تولۇق فۇنكسىيە نامىنى كاتەكچىگە يازسىڭىز بولىدۇ. فورمۇلا قىستۇرۇلغاندىن كېيىن ، ئۇنى ھەر قانداق يەرلىك فورمۇلاغا ئوخشاش باشقۇرالايسىز (تەھرىرلەش ، كۆپەيتىش ياكى يۆتكەشكە بولىدۇ). دائىملىق ئىپادىنى ئايرىم كاتەكچىدە ساقلاپ قالغىلى بولىدۇ. بۇ خىل ئەھۋالدا ، پەقەت 2-تالاش-تارتىش ئۈچۈن كاتەكچە پايدىلانمىسىنى ئىشلىتىڭ.
- بۇ ئىقتىدار تۇنجى تېپىلغان مۇسابىقىنى چىقىرىپ بېرىدۇ . سەزگۈر . ئەھۋالغا ماس كەلمەيدىغان ماسلاشتۇرۇش ئۈچۈن ، (? I) ئەندىزىسىنى ئىشلىتىڭ.
- ئەگەر ماس تېپىلمىسا ، # N / A خاتالىق بارقايتىپ كەلدى. تىرناق ئارىسىدا تېكىست چىقارماقچى بولۇۋاتىسىز دېگىن. تۇتۇۋېلىش گۇرۇپپىسى ئەڭ ئاسان ئۇسۇل.
ئەندىزە 1 : \ [(. *?) \] ئوخشاش.
ئەندىزە 2 : (? & lt; = \ [) (. *?) (? = \]) (. *?) ئىككى تىرناق ئارىسىدىكى تېكىست ئۈچۈن ھورۇن ئىزدەش ئىجرا قىلىدۇ. سوئال بەلگىسى بولمىغان (. *) تۇتۇلغان گۇرۇپپا ئاچكۆز ئىزدەش قىلىدۇ ۋە بىرىنچىدىن ئاخىرقىسىغىچە بولغان ھەممە نەرسىنى تۇتىدۇ.
A2 دىكى ئەندىزە بىلەن فورمۇلا ئوخشاش بولىدۇ. تۆۋەندىكىسى:
=AblebitsRegexExtract(A5, $A$2)
بارلىق مۇسابىقىلەرگە قانداق ئېرىشىش
يۇقىرىدا دېيىلگەندەك ، AblebitsRegexExtract ئىقتىدارى پەقەت بىر مەيدان مۇسابىقە ئېلىپ بارالايدۇ. بارلىق مۇسابىقىلەرگە ئېرىشىش ئۈچۈن ، بىز ئىلگىرى مۇلاھىزە قىلغان VBA ئىقتىدارىنى ئىشلىتەلەيسىز. قانداقلا بولمىسۇن ، بىر ئۆڭكۈر بار - VBA RegExp تۇتۇۋېلىش گۇرۇپپىسىنى قوللىمايدۇ ، شۇڭا يۇقارقى ئەندىزە «چېگرا» ھەرپلىرىنىمۇ قايتۇرىدۇ ، بىزنىڭ تىرناقلىرىمىز.
=TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))
قۇتۇلۇش تىرناقنىڭ ئىچىدە ، بۇ فورمۇلانى ئىشلىتىپ ئۇلارنى قۇرۇق قۇر ("") بىلەن SUBSTITUTE قىلىڭ:
=SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")
تېخىمۇ ياخشى ئوقۇشچانلىقى ئۈچۈن ، پەش ئارقىلىق ئايرىغۇچ ئىشلىتىمىز.
Regex ئىككى قۇر ئارىسىدىكى تېكىستنى چىقىرىش ئۈچۈن
بىز ئىشلىگەن ئۇسۇلئۇنى ھەقىقىي مەنىدە چۈشەندۈرۈڭ).
بارلىق تارماق تور بېكەتلەر بىلەن تولۇق تور نامىنى ئېلىش ئۈچۈن Regex: 48>
مۇنتىزىم ئىپادىلەش ئارقىلىق Excel دىكى تېكىستنىڭ قىسمەن بۆلەكلىرىنى چىقىرىش. ئوقۇغانلىقىڭىزغا رەھمەت ، كېلەر ھەپتە بىلوگىمىزدا كۆرۈشنى ئۈمىد قىلىمەن! (.exe ھۆججىتى)
\ b (0? [0-9]match.Count - 1 text_matches (match_index, 0) = match.Item (match_index) كېيىنكى match_index RegExpExtract = text_matches Else RegExpExtract = match.ئەگەر VBA بىلەن تەجرىبىڭىز ئاز بولسا ، باسقۇچلۇق ئىشلەتكۈچى قوللانمىسى پايدىلىق بولۇشى مۇمكىن: Excel غا VBA كودىنى قانداق قىستۇرۇش.
ئەسكەرتىش. بۇ ئىقتىدارنىڭ ئىشلىنىشى ئۈچۈن ھۆججىتىڭىزنى ماكرو قوزغىتىلغان خىزمەت دەپتىرى (.xlsm) قىلىپ ساقلاڭ.
RegExpExtract گرامماتىكىسى
RegExpExtract ئىقتىدارى دائىملىق ئىپادىلەشكە ماس كېلىدىغان ۋە بىر ياكى بارلىق ماس كېلىدىغان قىممەتلەرنى كىرگۈزۈش لىنىيىسىنى ئىزدەيدۇ. :
RegExpExtract (تېكىست ، ئەندىزە ، [مىسال_نۇم] ، [match_case])قەيەردە:
بۇ ئىقتىدار Excel 365 ، Excel 2021 ، Excel نىڭ بارلىق نەشرىدە ئىشلەيدۇ.2019 ، Excel 2016 ، Excel 2013 ۋە Excel 2010.
RegExpExtract
سىز بىلىشكە تېگىشلىك 4 ئىش Excel دىكى ئىقتىدارنى ئۈنۈملۈك ئىشلىتىش ئۈچۈن ، دىققەت قىلىشقا تېگىشلىك بىر قانچە مۇھىم ئىشلار بار:
- سۈكۈتتىكى ھالەتتە ، بۇ ئىقتىدار بۇ مىسالدا كۆرسىتىلگەندەك قوشنا كاتەكچىلەرگە ماس كېلىدۇ. مەلۇم بىر ھادىسىگە ئېرىشىش ئۈچۈن ، example_num تالاش-تارتىشىغا ماس نومۇر بىلەن تەمىنلەڭ.
- سۈكۈتتىكى ھالەتتە ، بۇ ئىقتىدار چوڭ-كىچىك . ئەھۋالغا ماس كەلمەيدىغان ماسلاشتۇرۇش ئۈچۈن ، match_case تالاش-تارتىشنى يالغانغا تەڭشەڭ. VBA چەكلىمىسى تۈپەيلىدىن ، ئەھۋالغا سەزگۈر قۇرۇلۇش (? I) كارغا كەلمەيدۇ. 13>
- ئەگەر ئەندىزىسى ئىناۋەتسىز بولسا ، # قىممەت! خاتالىق يۈز بېرىدۇ. تۆۋەندىكى مىساللار بىر قانچە كۆپ ئىشلىتىلىدىغان ئەھۋاللارنى ئۆز ئىچىگە ئالىدۇ ھەمدە ھەرىكەتنىڭ نېمە ئۈچۈن Dynamic Array Excel (Microsoft 365 ۋە Excel 2021) ۋە ئەنئەنىۋى Excel (2019 ۋە كونا نەشرى) دە ئوخشىمايدىغانلىقىنى چۈشەندۈرۈپ بېرىدۇ.
ئەسكەرتىش. Regex مىساللىرى ئادىل ئاددىي سانلىق مەلۇماتلار توپلىمى ئۈچۈن يېزىلغان. بىز ئۇلارنىڭ ھەقىقىي خىزمەت جەدۋىلىدە نۇقسانسىز ئىشلىشىگە كاپالەتلىك قىلالمايمىز. Regex تەجرىبىسى بارلار دائىملىق ئىپادىلەرنى يېزىشنىڭ مۇكەممەللىكنىڭ مەڭگۈ تۈگىمەيدىغان يولى ئىكەنلىكىگە قوشۇلىدۇ - دائىم دېگۈدەك بىر ئامال بار.ئۇ تېخىمۇ نەپىس ياكى تېخىمۇ كەڭ دائىرىدىكى سانلىق مەلۇماتلارنى بىر تەرەپ قىلالايدۇ.
Regex ھەرپ تىزمىسىدىن سان ئېلىش
«ئاددىيدىن مۇرەككەپ» ئوقۇتۇشنىڭ ئەڭ چوڭ چەكلىمىسىگە ئاساسەن ، بىز ناھايىتى ئاددىي بىر ئىشنى باشلايمىز: ساندىن سان چىقىرىش.
The قايسى ساننى ئېلىشنى قارار قىلىدىغان بىرىنچى ئىش: بىرىنچى ، ئەڭ ئاخىرقى ، كونكرېت ھادىسە ياكى بارلىق سانلار. \ D نىڭ 0 دىن 9 گىچە بولغان ھەر قانداق رەقەمنى ، + نىڭ بىر ياكى بىر قانچە قېتىمنى بىلدۈرىدىغانلىقىنى نەزەردە تۇتقاندا ، بىزنىڭ دائىملىق ئىپادىلىشىمىز بۇ شەكىلنى قوللىنىدۇ:
ئۈلگە : \ d +
Set مىسال_نۇم دىن 1 گىچە بولۇپ ، كۆڭۈلدىكىدەك نەتىجىگە ئېرىشىسىز:
=RegExpExtract(A5, "\d+", 1)
بۇ يەردە A5 ئەسلى تىزما. ئالدىن بېكىتىلگەن كاتەكچىدىكى ئەندىزە ($ A $ 2) ۋە ئۇنىڭ ئادرېسىنى $ بەلگىسى بىلەن قۇلۇپلاڭ:
=RegExpExtract(A5, $A$2, 1)
ئاخىرقى نومۇرغا ئېرىشىڭ ، بۇ يەردە ئىشلىتىش ئەندىزىسى:
ئەندىزە : (\ d +) (?!. * \ d)
ئىنسان تىلىغا تەرجىمە قىلىندى ، ئۇ مۇنداق دەيدۇ: باشقا سان بىلەن ئەگەشمىگەن (ھەر قانداق جايدا ، دەرھاللا ئەمەس) ساننى تېپىڭ. بۇنى ئىپادىلەش ئۈچۈن بىز سەلبىي قاراش (?!. * \ D) نى ئىشلىتىۋاتىمىز ، يەنى قېلىپنىڭ ئوڭ تەرىپىدە باشقا ھەرپلەرنىڭ قانچىلىك بولۇشىدىن قەتئىينەزەر باشقا رەقەم (\ d) بولماسلىقى كېرەك.
0 example_num نىڭ سانى. 11>مىسالىمىزنى سەل ئىلگىرى سۈرۈپ ، بارلىق سانلارنى بىر ساندىنلا ئالماقچى دەپ پەرەز قىلايلى.
ئېسىڭىزدە بولۇشى مۇمكىن ، چىقىرىلغان مۇسابىقىنىڭ سانى ئىختىيارى <1 تەرىپىدىن كونترول قىلىنىدۇ> example_num argument. سۈكۈتتىكى بارلىق ماس كېلىدۇ ، شۇڭا سىز پەقەت بۇ پارامېتىرنى ئەمەلدىن قالدۇرىسىز:
=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 دا بار بولغاچقا ، بۇ فورمۇلا كونا نەشرىدە ئىشلىمەيدۇ.
Regex
دىن تېكىست ئېلىش ھەرپ تىزمىسى Excel دىكى بىر قىيىن ۋەزىپە. Regex بىلەن تورتقا ئوخشاش ئاسان بولىدۇ. رەت قىلىنغان سىنىپنى ئىشلىتىپ رەقەم بولمىغان ھەممە نەرسىنى ماسلاشتۇرۇڭ.
ئۈلگە : [^ \ d] + ، فورمۇلا بولسا:
=RegExpExtract(A5, "[^\d]+")
بارلىق مۇسابىقىلەرنى بىر كاتەكچىگە چىقىرىش ئۈچۈن ، TEXTJOIN دىكى RegExpExtract فۇنكسىيەسىنى تۆۋەندىكىدەك ئۇۋۇلاڭ:
=TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))
Regex to ئېلېكترونلۇق خەت ئادرېسىنى تىزىشتىن چىقىرىڭ
ئوخشىمىغان ئۇچۇرلارنى ئۆز ئىچىگە ئالغان ھەرپ تىزمىسىدىن ئېلېكترونلۇق خەت ئادرېسىنى چىقىرىش ئۈچۈن ، ئېلېكترونلۇق خەت ئادرېسى قۇرۇلمىسىنى كۆپەيتىدىغان دائىملىق ئىپادىنى يېزىڭ.
ئۈلگە : [\ w \. \ -] + @ [A-Za-z0-9 \. \ -] + \. [A-Za-z] {2,24}
، بۇ يەردە ئېرىشەلەيدىغىنىمىز:
- [\ w \.
- [A-Za-z0-9 \.of subdomains). بۇ يەردە ئاستى سىزىقلارغا رۇخسەت قىلىنمايدۇ ، شۇڭلاشقا ھەر قانداق ھەرپ ، رەقەم ياكى ئاستى سىزىققا ماس كېلىدىغان \ w نىڭ ئورنىغا 3 ئوخشىمىغان ھەرپ توپلىمى (مەسىلەن A-Z a-z ۋە 0-9) ئىشلىتىلىدۇ.
- \. [A-Za-z ] 24 2,24} يۇقىرى دەرىجىلىك دائىرە. چوڭ ھەرپ ۋە كىچىك ھەرپلەردىن كېيىن چېكىتتىن تەركىب تاپىدۇ. يۇقىرى قاتلاملىق تور بېكەتلەرنىڭ كۆپىنچىسى ئۇزۇنلۇقى 3 ھەرپ (مەسىلەن .com .org ، .edu قاتارلىقلار) ، ئەمما نەزەرىيە جەھەتتىن ئۇ 2 دىن 24 ھەرىپنى ئۆز ئىچىگە ئالىدۇ (ئەڭ ئۇزۇن تىزىملاتقان TLD).
بۇ تىزمىنى A5 ۋە ئەندىزە A2 دەپ پەرەز قىلساق ، ئېلېكترونلۇق خەت ئادرېسىنى چىقىرىش فورمۇلا:
=RegExpExtract(A5, $A$2)
Regex ئېلېكترونلۇق خەتتىن تور نامىنى چىقىرىش
ئېلېكترونلۇق خەت تور نامىنى چىقىرىشقا كېلىدۇ ، كاللامغا كەلگەن تۇنجى ئوي تۇتۇش گۇرۇپپىسى ئارقىلىق @ ھەرپكە ئەگىشىدىغان تېكىستنى تېپىش.ئۈلگە : @ ([A-Za-z0 -9 \. \ -] + \. [A-Za-z] {2,24})
ئۇنى RegExp ئىقتىدارىمىزغا يەتكۈزۈڭ: سىز بۇ نەتىجىگە ئېرىشىسىز:
كلاسسىك دائىملىق ئىپادىلەش ئارقىلىق ، تۇتۇۋېلىش گۇرۇپپىسىنىڭ سىرتىدىكى ھەر قانداق نەرسە ئېلىشقا كىرگۈزۈلمەيدۇ. ھېچكىم VBA RegEx نىڭ نېمە ئۈچۈن باشقىچە ئىشلەيدىغانلىقىنى بىلمەيدۇ ۋە «@» نىمۇ تۇتىدۇ. ئۇنىڭدىن قۇتۇلۇش ئۈچۈن ، بىرىنچى ھەرپنى قۇرۇق ھەرپكە ئالماشتۇرۇش ئارقىلىق نەتىجىدىن ئۆچۈرەلەيسىز.
=REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, "")
تېلېفون نومۇرى
تېلېفون نومۇرى ئوخشىمىغان ئۇسۇللار بىلەن يازغىلى بولىدۇ ، شۇڭلاشقا ھەممەيلەننىڭ ئاستىدا ئىشلەيدىغان ھەل قىلىش چارىسىنى ئوتتۇرىغا قويۇش مۇمكىن ئەمەس(\ d {4}ھەرپ تىزمىسىدىن
چېسلانى چىقىرىشنىڭ دائىملىق ئىپادىسى چېسلانىڭ تىزما شەكلىدە كۆرۈنىدۇ. مەسىلەن:
1/1/21 ياكى 01/01/2021 غا ئوخشاش ۋاقىتلارنى چىقىرىش ئۈچۈن ، regex بولسا: \ d {1,2} \ / \ d {1,2} \ / (\ d {4}ئەھۋال. قانداقلا بولمىسۇن ، سانلىق مەلۇمات ئامبىرىڭىزدا ئىشلىتىلگەن بارلىق فورماتلارنى يېزىپ ، ئۇلارنى ماسلاشتۇرۇپ سىناپ باقسىڭىز بولىدۇ.
(123) 345-6789 (123) 345 6789 (123) 3456789 123- 345-6789 | 123.345.6789 123 345 6789 1233456789 |
ئەندىزە : \ (? \ D {3} [- \. \)] * \ D {3} [- \. ]؟ [- \. \)] * قىسمى چاسا تىرناقتىكى 0 ياكى ئۇنىڭدىن كۆپ قېتىم كۆرۈلىدىغان ھەرپ-بەلگىلەرنى كۆرسىتىدۇ: ئۇلانما ، دەۋر ، بوشلۇق ياكى تاقاش تىرناق. ھەر قانداق قىستۇرما ، دەۋر ياكى بوشلۇق [- \. ]? 0 ياكى 1 قېتىم كۆرۈنىدۇ.
تولۇق فورمۇلا بۇ شەكىلنى قوللىنىدۇ:
=RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")
123) 456 7899 ياكى (123 456 7899) غا ئوخشاش ساختا مۇسبەت نەتىجىلەر. تۆۋەندىكى نەشرى بۇ مەسىلىلەرنى ئوڭشايدۇ. قانداقلا بولمىسۇن ، بۇ گرامماتىكىلىق پەقەت كلاسسىك دائىملىق ئىپادىلەشتە ئەمەس ، پەقەت VBA RegExp ئىقتىدارىدا ئىشلەيدۇ.
ئۈلگە : (\ (\ d {3} \)ئىككى ھەرپ ئارىسىدىكى تېكىستنى چىقىرىش ئۈچۈن ئىككى قۇر ئارىسىدىكى تېكىستنى چىقىرىشقىمۇ ئىشلىتىلىدۇ.
مەسىلەن ، «سىناق 1» بىلەن «2-سىناق» ئارىسىدىكى ھەممە نەرسىگە ئېرىشىش ئۈچۈن ، تۆۋەندىكى دائىملىق ئىپادىنى ئىشلىتىڭ.
ئەندىزە : سىناق 1 (. *?) سىناق 2
تولۇق فورمۇلا:
=AblebitsRegexExtract(A5, "test 1(.*?)test 2")
Regex تور ئادرېسىنى URL دىن ئېلىش
دائىملىق ئىپادىلەشلەر بىلەنمۇ تور ئادرېسلىرىنى تور ئادرېسىدىن چىقىرىش ئەرزىمەس ئىش ئەمەس. ھىيلە-مىكىر قىلىدىغان ئاچقۇچلۇق ئېلېمېنت تۇتۇلمىغان گۇرۇپپىلار. ئاخىرقى نىشانىڭىزغا ئاساسەن ، تۆۋەندىكى جەدۋەللەردىن بىرنى تاللاڭ.
تارماق تور نامىنى ئۆز ئىچىگە ئالغان تولۇق تور نامىغا ئېرىشىش ئۈچۈن https? \: