એક્સેલમાં સ્ટ્રિંગ્સ કાઢવા માટે રેજેક્સ (એક અથવા તમામ મેચ)

  • આ શેર કરો
Michael Brown

સામગ્રીઓનું કોષ્ટક

આ ટ્યુટોરીયલમાં, તમે આપેલ પેટર્નથી મેળ ખાતા સબસ્ટ્રિંગ્સ શોધવા અને કાઢવા માટે Excel માં રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કેવી રીતે કરવો તે શીખી શકશો.

Microsoft Excel ટેક્સ્ટને બહાર કાઢવા માટે સંખ્યાબંધ ફંક્શન પ્રદાન કરે છે. કોષોમાંથી. તે ફંક્શન્સ તમારી વર્કશીટ્સમાં સ્ટ્રિંગ એક્સ્ટ્રાક્શન પડકારોનો સામનો કરી શકે છે. મોટાભાગના, પરંતુ બધા નહીં. જ્યારે ટેક્સ્ટ ફંક્શન્સ ઠોકર ખાય છે, ત્યારે રેગ્યુલર એક્સપ્રેશન્સ બચાવમાં આવે છે. રાહ જુઓ... એક્સેલમાં કોઈ RegEx ફંક્શન નથી! સાચું, કોઈ ઇનબિલ્ટ કાર્યો નથી. પરંતુ એવું કંઈ નથી કે જે તમને તમારા પોતાના ઉપયોગથી રોકે :)

    સ્ટ્રિંગ્સ કાઢવા માટે એક્સેલ VBA રેજેક્સ ફંક્શન

    તમારા એક્સેલમાં કસ્ટમ રેજેક્સ એક્સટ્રેક્ટ ફંક્શન ઉમેરવા માટે, VBA એડિટરમાં નીચેનો કોડ પેસ્ટ કરો. VBA માં રેગ્યુલર એક્સપ્રેશનને સક્ષમ કરવા માટે, અમે બિલ્ટ-ઇન Microsoft RegExp ઑબ્જેક્ટનો ઉપયોગ કરી રહ્યા છીએ.

    પબ્લિક ફંક્શન RegExpExtract(ટેક્સ્ટ એઝ સ્ટ્રિંગ, પેટર્ન એઝ સ્ટ્રિંગ, વૈકલ્પિક instance_num as Integer = 0, વૈકલ્પિક match_case as Boolean = True) મંદ કરો. ટેક્સ્ટ_મેચ() સ્ટ્રિંગ ડિમ તરીકે મેળ ખાય છે. ignorecase = ખોટું અન્યથા regex.ignorecase = સાચું અંત જો સેટ મેળ ખાય છે = regex.Execute(ટેક્સ્ટ) જો 0 < matches.Count પછી If (0 = instance_num) તો પછી text_maches (maches.Count - 1, 0) માટે ફરીથી ડિમ કરો matches_index = 0 માટેVBA RegExp, હું તમને આગળનો ભાગ વાંચવા માટે પ્રોત્સાહિત કરું છું જે ઘણા વધુ શક્તિશાળી .NET Regex કાર્યોની ચર્ચા કરે છે.

    Custom .NET આધારિત Regex ફંક્શન એક્સેલમાં ટેક્સ્ટ કાઢવા માટે

    VBA RegExp ફંક્શનથી વિપરીત કોઈપણ એક્સેલ વપરાશકર્તા દ્વારા લખી શકાય છે, .NET RegEx એ વિકાસકર્તાનું ક્ષેત્ર છે. Microsoft .NET ફ્રેમવર્ક પર્લ 5 સાથે સુસંગત પૂર્ણ-સુવિધાયુક્ત નિયમિત અભિવ્યક્તિ વાક્યરચનાનું સમર્થન કરે છે. આ લેખ તમને આવા કાર્યો કેવી રીતે લખવા તે શીખવશે નહીં (હું પ્રોગ્રામર નથી અને તે કેવી રીતે કરવું તે અંગે મને સહેજ પણ ખ્યાલ નથી :)

    માનક .NET RegEx એન્જીન દ્વારા પ્રોસેસ કરાયેલા ચાર શક્તિશાળી કાર્યો પહેલાથી જ અમારા વિકાસકર્તાઓ દ્વારા લખાયેલા છે અને અલ્ટીમેટ સ્યુટમાં સમાવિષ્ટ છે. નીચે, અમે એક્સેલમાં ટેક્સ્ટ કાઢવા માટે ખાસ રચાયેલ ફંક્શનના કેટલાક વ્યવહારુ ઉપયોગો દર્શાવીશું.

    ટીપ. .NET Regex સિન્ટેક્સ વિશેની માહિતી માટે, કૃપા કરીને .NET રેગ્યુલર એક્સપ્રેશન લેંગ્વેજનો સંદર્ભ લો.

    રેગ્યુલર એક્સપ્રેશન્સનો ઉપયોગ કરીને એક્સેલમાં સ્ટિંગ કેવી રીતે એક્સટ્રેક્ટ કરવું

    તમારી પાસે અલ્ટીમેટ સ્યુટનું લેટેસ્ટ વર્ઝન ઇન્સ્ટોલ કરેલ છે એમ ધારી રહ્યા છીએ, રેગ્યુલર એક્સપ્રેશન્સનો ઉપયોગ કરીને ટેક્સ્ટ એક્સટ્રેક્ટ કરવાનું આ બે સ્ટેપ્સ પર ઉકળે છે:

    1. Ablebits Data ટેબ પર, Text જૂથમાં, Regex Tools પર ક્લિક કરો.
    2. Regex Tools ફલક પર, સ્ત્રોત ડેટા પસંદ કરો, તમારી Regex પેટર્ન દાખલ કરો અને Extract વિકલ્પ પસંદ કરો. મૂલ્ય નહીં પણ કસ્ટમ ફંક્શન તરીકે પરિણામ મેળવવા માટે, સૂત્ર તરીકે દાખલ કરો ચેક પસંદ કરો.બોક્સ જ્યારે થઈ જાય, ત્યારે એક્સ્ટ્રેક્ટ બટનને ક્લિક કરો.

    પરિણામો તમારા મૂળ ડેટાની જમણી બાજુએ એક નવી કૉલમમાં દેખાશે:

    AblebitsRegexExtract syntax

    અમારા કસ્ટમ ફંક્શનમાં નીચેનો સિન્ટેક્સ છે:

    AblebitsRegexExtract(reference, regular_expression)

    ક્યાં:

    • સંદર્ભ (જરૂરી) - સ્ત્રોત સ્ટ્રીંગ ધરાવતા કોષનો સંદર્ભ.
    • નિયમિત_અભિવ્યક્તિ (જરૂરી) - મેચ કરવા માટે રેગેક્સ પેટર્ન.

    મહત્વપૂર્ણ નોંધ! ફંક્શન ફક્ત એક્સેલ માટે અલ્ટીમેટ સ્યુટ ઇન્સ્ટોલ કરેલ મશીનો પર જ કાર્ય કરે છે.

    ઉપયોગ નોંધો

    તમારા શીખવાની કર્વને સરળ બનાવવા અને તમારા અનુભવને વધુ આનંદપ્રદ બનાવવા માટે, કૃપા કરીને આ મુદ્દાઓ પર ધ્યાન આપો:

    1. ફોર્મ્યુલા બનાવવા માટે, તમે અમારા Regex ટૂલ્સ , અથવા Excel ના Insert function સંવાદનો ઉપયોગ કરી શકો છો અથવા સેલમાં સંપૂર્ણ ફંક્શન નામ લખી શકો છો. એકવાર ફોર્મ્યુલા દાખલ થઈ જાય, પછી તમે તેને કોઈપણ મૂળ ફોર્મ્યુલાની જેમ મેનેજ કરી શકો છો (સંપાદિત કરો, કૉપિ કરો અથવા ખસેડો).
    2. તમે Regex ટૂલ્સ ફલક પર દાખલ કરો છો તે પેટર્ન 2જી દલીલ પર જાય છે. એક અલગ કોષમાં નિયમિત અભિવ્યક્તિ રાખવાનું પણ શક્ય છે. આ કિસ્સામાં, 2જી દલીલ માટે ફક્ત સેલ સંદર્ભનો ઉપયોગ કરો.
    3. ફંક્શન પહેલી મળેલી મેચ ને બહાર કાઢે છે.
    4. ડિફૉલ્ટ રૂપે, ફંક્શન કેસ છે -સંવેદનશીલ . કેસ-અસંવેદનશીલ મેચિંગ માટે, (?i) પેટર્નનો ઉપયોગ કરો.
    5. જો મેળ ન મળે, તો #N/A ભૂલ છેપરત કર્યું.

    બે અક્ષરો વચ્ચે સ્ટ્રિંગ કાઢવા માટે Regex

    બે અક્ષરો વચ્ચે ટેક્સ્ટ મેળવવા માટે, તમે ક્યાં તો કૅપ્ચરિંગ જૂથનો ઉપયોગ કરી શકો છો અથવા આસપાસ જુઓ.

    ચાલો કહો કે તમે કૌંસ વચ્ચે ટેક્સ્ટ કાઢવા માટે જોઈ રહ્યા છો. જૂથને કેપ્ચર કરવું એ સૌથી સહેલો રસ્તો છે.

    પેટર્ન 1 : \[(.*?)\]

    સકારાત્મક દેખાવ સાથે અને આગળ જુઓ, પરિણામ બરાબર આવશે સમાન.

    પેટર્ન 2 : (?<=\[)(.*?)(?=\])

    કૃપા કરીને ધ્યાન આપો કે અમારું કેપ્ચરિંગ જૂથ (.*?) બે કૌંસ વચ્ચેના ટેક્સ્ટ માટે આળસુ શોધ કરે છે - પ્રથમ [ પ્રથમ] થી. પ્રશ્ન ચિહ્ન વિના કેપ્ચર કરનાર જૂથ ( *) લોભી શોધ કરશે અને પ્રથમ [ છેલ્લા ] થી બધું મેળવશે.

    A2 માં પેટર્ન સાથે, સૂત્ર આ પ્રમાણે જાય છે અનુસરે છે:

    =AblebitsRegexExtract(A5, $A$2)

    બધી મેચો કેવી રીતે મેળવવી

    પહેલેથી જ ઉલ્લેખ કર્યો છે તેમ, AblebitsRegexExtract ફંક્શન માત્ર એક મેચને બહાર કાઢી શકે છે. તમામ મેચો મેળવવા માટે, તમે VBA ફંક્શનનો ઉપયોગ કરી શકો છો જેની અમે અગાઉ ચર્ચા કરી છે. જો કે, એક ચેતવણી છે - VBA RegExp જૂથોને કેપ્ચર કરવાને સમર્થન આપતું નથી, તેથી ઉપરોક્ત પેટર્ન "સીમા" અક્ષરો પણ પરત કરશે, અમારા કિસ્સામાં કૌંસ.

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

    છુટકારો મેળવવા માટે કૌંસમાંથી, આ સૂત્રનો ઉપયોગ કરીને તેમને ખાલી શબ્દમાળાઓ ("") વડે બદલો:

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

    વધુ સારી વાંચનક્ષમતા માટે, અમે સીમાંકન માટે અલ્પવિરામનો ઉપયોગ કરી રહ્યા છીએ.

    બે શબ્દમાળાઓ વચ્ચે ટેક્સ્ટ કાઢવા માટે Regex

    અમે કામ કરેલ અભિગમતેનું શાબ્દિક અર્થઘટન કરો).

  • (?:[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 અક્ષરો છે.
  • A2 માં કઈ રેગ્યુલર એક્સપ્રેશન દાખલ કરવામાં આવી છે તેના આધારે, નીચેનું સૂત્ર અલગ પરિણામો આપશે:

    =AblebitsRegexExtract(A5, $A$2)

    તમામ સબડોમેન્સ સાથે સંપૂર્ણ ડોમેન નામ કાઢવા માટે Regex:

    રેજેક્સ સબડોમેન્સ વિના સેકન્ડ-લેવલ ડોમેન કાઢવા માટે:

    આ રીતે રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરીને એક્સેલમાં ટેક્સ્ટના ભાગોને એક્સ્ટ્રેક્ટ કરવા. હું વાંચવા બદલ તમારો આભાર માનું છું અને આવતા અઠવાડિયે તમને અમારા બ્લોગ પર મળવાની રાહ જોઉં છું!

    ઉપલબ્ધ ડાઉનલોડ્સ

    Excel Regex Extract Extract ઉદાહરણો (.xlsm file)

    Ultimate Suite ટ્રાયલ વર્ઝન (.exe ફાઇલ)

    \b(0?[0-9]matches.Count - 1 text_maches(matches_index, 0) = matches.Item(matches_index) આગળ matches_index RegExpExtract = text_maches બાકી RegExpExtract = matches.Item(instance_num - 1) End If End If Exit Function: RegExl EndFunction = RegExl EndFunction

    જો તમને VBA સાથે થોડો અનુભવ હોય, તો એક પગલું-દર-પગલાં વપરાશકર્તા માર્ગદર્શિકા મદદરૂપ થઈ શકે છે: Excel માં VBA કોડ કેવી રીતે દાખલ કરવો.

    નોંધ. કાર્ય કાર્ય કરવા માટે, તમારી ફાઇલને મેક્રો-સક્ષમ વર્કબુક (.xlsm) તરીકે સાચવવાની ખાતરી કરો.

    RegExpExtract સિન્ટેક્સ

    RegExpExtract ફંક્શન એવા મૂલ્યો માટે ઇનપુટ સ્ટ્રિંગ શોધે છે જે નિયમિત અભિવ્યક્તિ સાથે મેળ ખાય છે અને એક અથવા તમામ મેચોને બહાર કાઢે છે.

    ફંક્શનમાં નીચેનું સિન્ટેક્સ છે :

    RegExpExtract(ટેક્સ્ટ, પેટર્ન, [instance_num], [match_case])

    ક્યાં:

    • ટેક્સ્ટ (જરૂરી) - શોધવા માટે ટેક્સ્ટ સ્ટ્રીંગ.
    • પેટર્ન (જરૂરી) - મેચ કરવા માટે નિયમિત અભિવ્યક્તિ. જ્યારે ફોર્મ્યુલામાં સીધું પૂરું પાડવામાં આવે ત્યારે, પેટર્ન ડબલ અવતરણ ચિહ્નોમાં બંધ હોવી જોઈએ.
    • ઇન્સ્ટન્સ_નંમ (વૈકલ્પિક) - એક સીરીયલ નંબર જે દર્શાવે છે કે કયો દાખલો કાઢવાનો છે. જો અવગણવામાં આવે તો, તમામ મળેલા મેળ પરત કરે છે (ડિફૉલ્ટ).
    • મેચ_કેસ (વૈકલ્પિક) - વ્યાખ્યાયિત કરે છે કે ટેક્સ્ટ કેસને મેચ કરવો કે અવગણવો. જો TRUE અથવા અવગણવામાં આવે તો (ડિફૉલ્ટ), કેસ-સંવેદનશીલ મેચિંગ કરવામાં આવે છે; જો FALSE - કેસ-અસંવેદનશીલ.

    ફંક્શન એક્સેલ 365, એક્સેલ 2021, એક્સેલના તમામ વર્ઝનમાં કામ કરે છે2019, એક્સેલ 2016, એક્સેલ 2013 અને એક્સેલ 2010.

    4 વસ્તુઓ જે તમારે RegExpExtract વિશે જાણવી જોઈએ

    તમારા Excel માં ફંક્શનનો અસરકારક રીતે ઉપયોગ કરવા માટે, ધ્યાન રાખવા જેવી કેટલીક મહત્વપૂર્ણ બાબતો છે:

    1. ડિફૉલ્ટ રૂપે, ફંક્શન આ ઉદાહરણમાં બતાવ્યા પ્રમાણે પડોશી કોષોમાં તમામ મળેલા મેળ પરત કરે છે. ચોક્કસ ઘટના મેળવવા માટે, instance_num દલીલને અનુરૂપ નંબર આપો.
    2. ડિફૉલ્ટ રૂપે, ફંક્શન કેસ-સંવેદનશીલ છે. કેસ-અસંવેદનશીલ મેચિંગ માટે, match_case દલીલને FALSE પર સેટ કરો. VBA મર્યાદાઓને કારણે, કેસ-અસંવેદનશીલ રચના (?i) કામ કરશે નહીં.
    3. જો માન્ય પેટર્ન ન મળે , તો ફંક્શન કંઈપણ (ખાલી સ્ટ્રિંગ) પરત કરતું નથી.
    4. જો પેટર્ન અમાન્ય છે , તો #VALUE! ભૂલ થાય છે.

    તમે તમારી વર્કશીટ્સમાં આ કસ્ટમ ફંક્શનનો ઉપયોગ કરવાનું શરૂ કરો તે પહેલાં, તમારે તે સમજવાની જરૂર છે કે તે શું સક્ષમ છે, ખરું? નીચેના ઉદાહરણો કેટલાક સામાન્ય ઉપયોગના કિસ્સાઓને આવરી લે છે અને સમજાવે છે કે ડાયનેમિક એરે એક્સેલ (માઈક્રોસોફ્ટ 365 અને એક્સેલ 2021) અને પરંપરાગત એક્સેલ (2019 અને જૂના વર્ઝન)માં વર્તન શા માટે અલગ હોઈ શકે છે.

    નોંધ. આઉટ રેજેક્સ ઉદાહરણો પરી સરળ ડેટા સેટ માટે લખવામાં આવે છે. અમે ખાતરી આપી શકતા નથી કે તેઓ તમારી વાસ્તવિક વર્કશીટ્સમાં દોષરહિત રીતે કાર્ય કરશે. રેગેક્સનો અનુભવ ધરાવતા લોકો સંમત થશે કે નિયમિત અભિવ્યક્તિઓ લખવી એ પૂર્ણતાનો ક્યારેય ન સમાપ્ત થતો માર્ગ છે - લગભગ હંમેશા બનાવવાની એક રીત હોય છે.તે વધુ ભવ્ય અથવા ઇનપુટ ડેટાની વિશાળ શ્રેણીને હેન્ડલ કરવામાં સક્ષમ છે.

    સ્ટ્રિંગમાંથી નંબર કાઢવા માટે રેજેક્સ

    "સરળથી જટિલ સુધી" શીખવવાના મૂળભૂત મેક્સિમને અનુસરીને, અમે એકદમ સાદા કેસથી શરૂઆત કરીશું: શબ્દમાળામાંથી સંખ્યા કાઢવા.

    આ તમારે નક્કી કરવાની પ્રથમ વસ્તુ એ છે કે કયો નંબર મેળવવો છે: પ્રથમ, છેલ્લો, ચોક્કસ ઘટના અથવા બધી સંખ્યાઓ.

    પ્રથમ નંબર કાઢો

    આ રેજેક્સ મેળવી શકે તેટલું સરળ છે. આપેલ છે કે \d નો અર્થ 0 થી 9 સુધીનો કોઈપણ અંક છે, અને + નો અર્થ એક અથવા વધુ વખત થાય છે, અમારી નિયમિત અભિવ્યક્તિ આ સ્વરૂપ લે છે:

    પેટર્ન : \d+

    સેટ instance_num થી 1 અને તમને ઇચ્છિત પરિણામ મળશે:

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

    જ્યાં A5 મૂળ સ્ટ્રિંગ છે.

    સુવિધા માટે, તમે ઇનપુટ કરી શકો છો. પૂર્વવ્યાખ્યાયિત કોષમાં પેટર્ન ($A$2 ) અને તેનું સરનામું $ ચિહ્ન સાથે લોક કરો:

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

    છેલ્લો નંબર મેળવો

    સ્ટ્રિંગમાં છેલ્લો નંબર કાઢવા માટે , ઉપયોગ કરવા માટેની પેટર્ન અહીં છે:

    પેટર્ન : (\d+)(?!.*\d)

    માનવ ભાષામાં અનુવાદિત , તે કહે છે: એવી સંખ્યા શોધો કે જે અન્ય કોઈપણ નંબર દ્વારા અનુસરવામાં ન આવે (ક્યાંય પણ, માત્ર તરત જ નહીં). આને વ્યક્ત કરવા માટે, અમે નકારાત્મક દેખાવ (?!.*\d) નો ઉપયોગ કરી રહ્યા છીએ, જેનો અર્થ છે કે પેટર્નની જમણી બાજુએ તેની આગળ કેટલા અન્ય અક્ષરો હોવાને ધ્યાનમાં લીધા વિના અન્ય કોઈ અંક (\d) હોવો જોઈએ નહીં.<3

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

    ટીપ્સ:

    • ચોક્કસ ઘટના મેળવવા માટે, પેટર્ન અને યોગ્ય સીરીયલ માટે \d+ નો ઉપયોગ કરો instance_num માટે નંબર.
    • બધા નંબરો કાઢવાના સૂત્રની ચર્ચા આગલા ઉદાહરણમાં કરવામાં આવી છે.

    બધા મેળ કાઢવા માટે Regex

    અમારા ઉદાહરણને થોડું આગળ ધકેલીને, ધારો કે તમે માત્ર એક નહીં પણ સ્ટ્રિંગમાંથી બધી સંખ્યાઓ મેળવવા માંગો છો.

    તમને યાદ હશે તેમ, એક્સટ્રેક્ટેડ મેચોની સંખ્યા વૈકલ્પિક <1 દ્વારા નિયંત્રિત થાય છે>instance_num દલીલ. ડિફૉલ્ટ તમામ મેચો છે, તેથી તમે ફક્ત આ પરિમાણને છોડી દો:

    =RegExpExtract(A2, "\d+")

    સૂત્ર એક કોષ માટે સુંદર રીતે કાર્ય કરે છે, પરંતુ વર્તન ડાયનેમિક એરે એક્સેલ અને બિન-ડાયનેમિક સંસ્કરણોમાં અલગ છે.

    Excel 365 અને Excel 2021

    ડાયનેમિક એરેને સપોર્ટ કરવાને કારણે, એક નિયમિત ફોર્મ્યુલા આપમેળે તમામ ગણતરી કરેલ પરિણામો પ્રદર્શિત કરવા માટે જરૂરી હોય તેટલા કોષોમાં ફેલાય છે. એક્સેલના સંદર્ભમાં, તેને સ્પિલ્ડ રેન્જ કહેવામાં આવે છે:

    એક્સેલ 2019 અને નીચલી

    પ્રી-ડાયનેમિક એક્સેલમાં, ઉપરોક્ત ફોર્મ્યુલા માત્ર એક મેચ આપશે. બહુવિધ મેચો મેળવવા માટે, તમારે તેને એરે ફોર્મ્યુલા બનાવવાની જરૂર છે. આ માટે, કોષોની શ્રેણી પસંદ કરો, ફોર્મ્યુલા ટાઇપ કરો અને તેને પૂર્ણ કરવા માટે Ctrl + Shift + Enter દબાવો.

    આ અભિગમનો એક નુકસાન એ "વધારાના કોષો" માં દેખાતી #N/A ભૂલોનો સમૂહ છે. . અફસોસની વાત એ છે કે તેના વિશે કશું કરી શકાતું નથી (ન તો IFERROR કે IFNA તેને ઠીક કરી શકે છે, અરે).

    તમામ મેળ એક કોષમાં કાઢો

    જ્યારે ડેટાના કૉલમ પર પ્રક્રિયા કરવામાં આવે છે, ત્યારે ઉપરોક્ત અભિગમ દેખીતી રીતે કામ કરશે નહીં. આ કિસ્સામાં, એક આદર્શ ઉકેલતમામ મેચો એક સેલમાં પરત કરવામાં આવશે. તે પૂર્ણ કરવા માટે, RegExpExtract ના પરિણામોને TEXTJOIN ફંક્શનમાં આપો અને તેમને તમને ગમે તે સીમાંક સાથે અલગ કરો, અલ્પવિરામ અને સ્પેસ કહો:

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

    નોંધ. કારણ કે TEXTJOIN ફંક્શન માત્ર Microsoft 365, Excel 2021 અને Excel 2019 માટે Excel માં ઉપલબ્ધ છે, ફોર્મ્યુલા જૂના વર્ઝનમાં કામ કરશે નહીં.

    સ્ટ્રિંગમાંથી ટેક્સ્ટ કાઢવા માટે Regex

    માંથી ટેક્સ્ટ એક્સટ્રેક્ટ કરી રહ્યું છે એક્સેલમાં આલ્ફાન્યુમેરિક સ્ટ્રિંગ ખૂબ જ પડકારજનક કાર્ય છે. રેજેક્સ સાથે, તે પાઇ જેટલું સરળ બને છે. અંક ન હોય તેવી દરેક વસ્તુ સાથે મેળ કરવા માટે માત્ર નેગેટેડ ક્લાસનો ઉપયોગ કરો.

    પેટર્ન : [^\d]+

    વ્યક્તિગત કોષોમાં સબસ્ટ્રિંગ મેળવવા માટે (સ્પિલ શ્રેણી) , સૂત્ર છે:

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

    બધી મેચોને એક કોષમાં આઉટપુટ કરવા માટે, TEXTJOIN માં RegExpExtract ફંક્શનને આ રીતે નેસ્ટ કરો:

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

    આના પર Regex સ્ટ્રિંગમાંથી ઈમેલ એડ્રેસ એક્સટ્રેક્ટ કરો

    ઘણી બધી અલગ માહિતી ધરાવતી સ્ટ્રીંગમાંથી ઈમેલ એડ્રેસ કાઢવા માટે, એક રેગ્યુલર એક્સપ્રેશન લખો જે ઈમેલ એડ્રેસ સ્ટ્રક્ચરની નકલ કરે છે.

    પેટર્ન : [\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)

    ઈમેલમાંથી ડોમેન કાઢવા માટે Regex

    જ્યારે તે ઈમેલ ડોમેન કાઢવાની વાત આવે છે, મનમાં જે પહેલો વિચાર આવે છે તે લખાણ શોધવા માટે કેપ્ચરિંગ ગ્રૂપનો ઉપયોગ કરવાનો છે જે @ અક્ષરને તરત જ અનુસરે છે.

    પેટર્ન : @([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}શબ્દમાળામાંથી

    તારીખ કાઢવા માટે નિયમિત અભિવ્યક્તિ ફોર્મેટ પર આધાર રાખે છે જેમાં તારીખ શબ્દમાળામાં દેખાય છે. ઉદાહરણ તરીકે:

    1/1/21 અથવા 01/01/2021 જેવી તારીખો કાઢવા માટે, રેગેક્સ છે: \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}[-\. ]?\d{4}\b

    • પ્રથમ ભાગ \(?\d{3} શૂન્ય અથવા એક ઓપનિંગ કૌંસ સાથે મેળ ખાય છે અને ત્યારબાદ ત્રણ અંકો d{3}.
    • [-\. \)]* ભાગનો અર્થ થાય છે ચોરસ કૌંસમાં 0 અથવા વધુ વખત દેખાતા કોઈપણ અક્ષર: હાઇફન, પીરિયડ, સ્પેસ અથવા બંધ કૌંસ.
    • આગળ, આપણી પાસે ફરીથી ત્રણ અંકો છે d{3} ત્યારબાદ કોઈપણ હાઇફન, પીરિયડ અથવા સ્પેસ [-\. ]? 0 અથવા 1 વખત દેખાય છે.
    • તે પછી, ચાર અંકોનો સમૂહ છે \d{4}.
    • છેલ્લે, ત્યાં એક શબ્દ સીમા છે \b એ વ્યાખ્યાયિત કરે છે કે આપણે ફોન નંબર છીએ શોધવું એ મોટી સંખ્યાનો ભાગ હોઈ શકતું નથી.

    સંપૂર્ણ સૂત્ર આ આકાર લે છે:

    =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")

    URL માંથી ડોમેન કાઢવા માટે Regex

    રેગ્યુલર એક્સપ્રેશન સાથે પણ, URL માંથી ડોમેન નામો કાઢવા એ મામૂલી કાર્ય નથી. મુખ્ય તત્વ જે યુક્તિ કરે છે તે બિન-કેપ્ચરિંગ જૂથો છે. તમારા અંતિમ ધ્યેયના આધારે, નીચેનામાંથી એક રેગેક્સ પસંદ કરો.

    સબડોમેન્સ સહિત સંપૂર્ણ ડોમેન નામ મેળવવા માટે

    પેટર્ન : (?: https?\:

    માઈકલ બ્રાઉન સોફ્ટવેર ટૂલ્સનો ઉપયોગ કરીને જટિલ પ્રક્રિયાઓને સરળ બનાવવાના જુસ્સા સાથે સમર્પિત ટેકનોલોજી ઉત્સાહી છે. ટેક ઉદ્યોગમાં એક દાયકા કરતાં વધુ અનુભવ સાથે, તેમણે Microsoft Excel અને Outlook, તેમજ Google Sheets અને Docsમાં તેમની કુશળતાને સન્માનિત કરી છે. માઈકલનો બ્લોગ તેના જ્ઞાન અને કુશળતાને અન્ય લોકો સાથે શેર કરવા માટે સમર્પિત છે, ઉત્પાદકતા અને કાર્યક્ષમતામાં સુધારો કરવા માટે અનુસરવામાં સરળ ટીપ્સ અને ટ્યુટોરિયલ્સ પ્રદાન કરે છે. ભલે તમે અનુભવી વ્યાવસાયિક હોવ કે શિખાઉ માણસ, માઈકલનો બ્લોગ આ આવશ્યક સોફ્ટવેર સાધનોમાંથી સૌથી વધુ મેળવવા માટે મૂલ્યવાન આંતરદૃષ્ટિ અને વ્યવહારુ સલાહ આપે છે.