એક્સેલ રેજેક્સ: રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરીને સ્ટ્રીંગ્સને મેચ કરો

  • આ શેર કરો
Michael Brown

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

> કોષોના, તમે MATCH અથવા XMATCH ફંક્શનનો ઉપયોગ કરશો. જ્યારે કોષમાં ચોક્કસ સ્ટ્રિંગ શોધી રહ્યા હોય, ત્યારે શોધ અને શોધ કાર્યો હાથમાં આવે છે. અને તમે કેવી રીતે જાણો છો કે કોષમાં આપેલ પેટર્ન સાથે મેળ ખાતી માહિતી શામેલ છે? દેખીતી રીતે, નિયમિત અભિવ્યક્તિઓનો ઉપયોગ કરીને. પરંતુ આઉટ ઓફ બોક્સ એક્સેલ રેજેક્સને સપોર્ટ કરતું નથી! ચિંતા કરશો નહીં, અમે તેને આ માટે દબાણ કરીશું :)

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

    જેમ કે તે મથાળાથી એકદમ સ્પષ્ટ છે, રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરવા માટે Excel માં, તમારે તમારું પોતાનું કાર્ય બનાવવાની જરૂર છે. સદભાગ્યે, એક્સેલના VBA માં ઇનબિલ્ટ RegExp ઑબ્જેક્ટ છે, જેનો ઉપયોગ તમે નીચે બતાવ્યા પ્રમાણે તમારા કોડમાં કરી શકો છો:

    પબ્લિક ફંક્શન RegExpMatch(ઇનપુટ_રેન્જ એ રેન્જ, પેટર્ન એઝ સ્ટ્રિંગ, વૈકલ્પિક મેચ_કેસ એઝ બુલિયન = ટ્રુ) તરીકે વેરિઅન્ટ ડિમ arRes() વેરિયન્ટ 'એરે તરીકે પરિણામોને સંગ્રહિત કરવા માટે Dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols As long' સ્ત્રોત શ્રેણીમાં વર્તમાન પંક્તિની અનુક્રમણિકા, સ્રોત શ્રેણીમાં વર્તમાન કૉલમનો અનુક્રમણિકા, પંક્તિઓની ગણતરી, સંખ્યા ભૂલ પર કૉલમ GoTo ErrHandl RegExpMatch = arRes સેટ કરો regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = પેટર્ન regex.Global = True regex.MultiLine = True જો સાચું = match_case પછી regex.True = Fseign. અંતઅભિવ્યક્તિઓ.

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

    મેચ રેજેક્સ સાથે એક્સેલ IF ફોર્મ્યુલા

    આ હકીકતને કારણે કે ઇનબિલ્ટ અને કસ્ટમફંક્શન્સ સરસ રીતે ચાલે છે, એવું કંઈ નથી કે જે તમને એક જ ફોર્મ્યુલામાં તેનો એકસાથે ઉપયોગ કરતા અટકાવે.

    જો રેગ્યુલર એક્સપ્રેશન મેળ ખાતું હોય તો કંઈક પરત કરવા અથવા તેની ગણતરી કરવા માટે અને જો તે મેળ ખાતું ન હોય તો બીજું કંઈક, કસ્ટમ RegExpMatch એમ્બેડ કરો IF ના લોજિકલ ટેક્સ્ટમાં ફંક્શન:

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

    ઉદાહરણ તરીકે, જો A5 માં સ્ટ્રિંગમાં માન્ય ઇમેઇલ સરનામું હોય, તો તમે "હા" પરત કરી શકો છો; અન્યથા "ના".

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

    રેજેક્સ મેળ ખાય છે કે કેમ તે ગણો

    કારણ કે મૂળ એક્સેલ ફંક્શન્સ રેગ્યુલર એક્સપ્રેશનને સપોર્ટ કરતા નથી, તે છે COUNTIS અથવા COUNTIFS ફંક્શનમાં સીધા જ રેજેક્સ મૂકવું શક્ય નથી. સદભાગ્યે, તમે અમારા કસ્ટમ ફંક્શનનો ઉપયોગ કરીને આ કાર્યક્ષમતાનું અનુકરણ કરી શકો છો.

    ધારો કે તમે ફોન નંબરને મેચ કરવા અને કૉલમ B માં પરિણામો આઉટપુટ કરવા માટે રેજેક્સનો ઉપયોગ કર્યો છે. કેટલા સેલ ફોન નંબર ધરાવે છે તે શોધવા માટે, તમારે ફક્ત B5:B9 માં સાચી કિંમતો ગણવા માટે. અને તે પ્રમાણભૂત COUNTIF ફોર્મ્યુલાનો ઉપયોગ કરીને સરળતાથી કરી શકાય છે:

    =COUNTIF(B5:B9, TRUE)

    તમારી વર્કશીટમાં કોઈ વધારાની કૉલમ નથી જોઈતી? કોઇ વાંધો નહી. ધ્યાનમાં રાખીને કે અમારું કસ્ટમ ફંક્શન એક સમયે બહુવિધ કોષો પર પ્રક્રિયા કરી શકે છે અને એક્સેલનું SUM એરેમાં મૂલ્યો ઉમેરી શકે છે, અહીં તમે શું કરો છો તે છે:

    • RegExpMatch ને શ્રેણી સંદર્ભ આપો, જેથી તે એક TRUE અને FALSE મૂલ્યોની શ્રેણી.
    • લોજિકલ મૂલ્યોને દબાણ કરવા માટે બેવડા નકારાત્મક (--) નો ઉપયોગ કરો અનેશૂન્ય.
    • પરિણામી એરેમાં 1 અને 0 ઉમેરવા માટે SUM ફંક્શન મેળવો.

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

    રેજેક્સ મેચિંગ અલ્ટીમેટ સ્યુટ સાથે

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

    કસ્ટમ RegexMatch ફંક્શનનો ઉપયોગ કેવી રીતે કરવો

    માની લઈએ કે તમારી પાસે અલ્ટીમેટ સ્યુટનું નવીનતમ સંસ્કરણ ઇન્સ્ટોલ કરેલું છે ( 2021.4 અથવા પછી), તમે બે સરળ પગલાઓમાં રેજેક્સ મેચ ફોર્મ્યુલા બનાવી શકો છો:

    1. એબલબિટ્સ ડેટા ટેબ પર, ટેક્સ્ટ જૂથમાં, ક્લિક કરો Regex Tools .

  • Regex Tools ફલક પર, નીચેના કરો:
    • પસંદ કરો સ્ત્રોત શબ્દમાળાઓ.
    • તમારી પેટર્ન દાખલ કરો.
    • મેચ વિકલ્પ પસંદ કરો.
    • પરિણામોને મૂલ્યો તરીકે નહીં, ફોર્મ્યુલા તરીકે મેળવવા માટે, <પસંદ કરો 8>સૂત્ર તરીકે દાખલ કરો ચેક બોક્સ.
    • મેચ બટન પર ક્લિક કરો.

    એક ક્ષણ પછી, AblebitsRegexMatch ફંક્શન તમારા ડેટાની જમણી બાજુએ એક નવી કૉલમમાં દાખલ કરવામાં આવે છે.

    નીચેના સ્ક્રીનશૉટમાં, ફંક્શન તપાસે છે કે કૉલમ A માં સ્ટ્રિંગ્સ 7-અંક ધરાવે છે કે કેમ નંબરો કે નહીં.

    ટીપ્સ:

    • ધ ફંક tion ને દાખલ કરી શકાય છે સીધા કોષમાં સ્ટાન્ડર્ડ Insert Function સંવાદ બોક્સ દ્વારા, જ્યાં તેને AblebitsUDFs હેઠળ વર્ગીકૃત કરવામાં આવે છે.
    • ડિફૉલ્ટ રૂપે, ફોર્મ્યુલામાં નિયમિત અભિવ્યક્તિ ઉમેરવામાં આવે છે, પરંતુ તમે તેને પણ રાખી શકો છો. તેને એક અલગ કોષમાં. આ માટે, માત્ર 2જી દલીલ માટે સેલ સંદર્ભનો ઉપયોગ કરો.
    • ડિફૉલ્ટ રૂપે, ફંક્શન કેસ-સેન્સિટિવ છે. કેસ-અસંવેદનશીલ મેચિંગ માટે, (?i) પેટર્નનો ઉપયોગ કરો.

    વધુ માહિતી માટે, કૃપા કરીને AblebitsRegexMatch ફંક્શન જુઓ.

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

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

    Excel Regex Match ઉદાહરણો (.xlsm ફાઇલ)

    Ultimate Suite 14- દિવસ પૂર્ણ-કાર્યકારી સંસ્કરણ (.exe ફાઇલ)

    જો cntInputRows = input_range.Rows.Count cntInputCols = input_range.Columns.Count ReDim arRes(1 થી cntInputRows, 1 થી cntInputCols) માટે iInputCurRow = 1 માટે cntInputRows માટે iInputCurCol = 1 માટે cntInputRows = 1. .Cells(iInputCurRow, iInputCurCol).Value) આગળ આગળ RegExpMatch = arRes એક્ઝિટ ફંક્શન ErrHandl: RegExpMatch = CVErr(xlErrValue) ફંક્શન સમાપ્ત કરો

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

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

    RegExpMatch સિન્ટેક્સ

    RegExpMatch ફંક્શન ચકાસે છે કે સ્ત્રોત સ્ટ્રિંગનો કોઈપણ ભાગ રેગ્યુલર એક્સપ્રેશન સાથે મેળ ખાય છે કે કેમ. પરિણામ એ બુલિયન મૂલ્ય છે: જો ઓછામાં ઓછું એક મેળ મળે તો સાચું, અન્યથા ખોટું.

    અમારા કસ્ટમ ફંક્શનમાં 3 દલીલો છે - પ્રથમ બે જરૂરી છે અને છેલ્લું વૈકલ્પિક છે:

    RegExpMatch(ટેક્સ્ટ , પેટર્ન, [મેચ_કેસ])

    ક્યાં:

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

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

    3 વસ્તુઓ તમે RegExpMatch વિશે જાણવું જોઈએ

    અમે વ્યવહારિક ગણતરીઓ પર પહોંચીએ તે પહેલાં, કૃપા કરીને નીચેના મુદ્દાઓ પર ધ્યાન આપો જે કેટલીક તકનીકીઓને સ્પષ્ટ કરે છે:

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

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

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

    જ્યારે તમે મેચ કરવા માંગતા હોવ ત્યારે સમાન પેટર્ન,રેગ્યુલર એક્સપ્રેશન એ એક આદર્શ ઉકેલ છે.

    ધારો કે તમારી પાસે કોષોની શ્રેણી (A5:A9) છે જેમાં કેટલીક વસ્તુઓ વિશે વિવિધ વિગતો છે. તમે જાણવા માંગો છો કે કયા કોષોમાં SKU છે. ધારીને કે દરેક SKUમાં 2 મોટા અક્ષરો, એક હાઇફન અને 3 અંકો હોય છે, તમે નીચેની અભિવ્યક્તિનો ઉપયોગ કરીને તેમને મેચ કરી શકો છો.

    પેટર્ન : \b[A-Z]{2}-\ d{3}\b

    જ્યાં [A-Z]{2} નો અર્થ A થી Z સુધીના કોઈપણ 2 મોટા અક્ષરો અને \d{3} નો અર્થ 0 થી 9 સુધીના કોઈપણ 3 અંકો. \b અક્ષર શબ્દ સૂચવે છે સીમા, એટલે કે SKU એ એક અલગ શબ્દ છે, અને 23-MAR-2022 જેવા મોટા સ્ટ્રિંગનો ભાગ નથી.

    પૅટર્નની સ્થાપના સાથે, અમે ફોર્મ્યુલા લખવા તરફ આગળ વધી શકીએ છીએ. અનિવાર્યપણે, કસ્ટમ ફંક્શનનો ઉપયોગ કરવો એ મૂળથી અલગ નથી. જલદી તમે ફોર્મ્યુલા ટાઇપ કરવાનું શરૂ કરશો, એક્સેલના સ્વતઃપૂર્ણ દ્વારા સૂચિત સૂચિમાં ફંક્શનનું નામ દેખાશે. જો કે, ડાયનેમિક એરે એક્સેલ (માઈક્રોસોફ્ટ 365 અને એક્સેલ 2021) અને પરંપરાગત એક્સેલ (2019 અને જૂના વર્ઝન) માં કેટલીક ઘોંઘાટ છે.

    એક કોષમાં સ્ટ્રિંગને મેચ કરો

    સ્ટ્રિંગને મેચ કરવા માટે એક કોષમાં, પ્રથમ દલીલમાં તે કોષનો સંદર્ભ લો. બીજી દલીલમાં નિયમિત અભિવ્યક્તિ હોવાનું માનવામાં આવે છે.

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

    પેટર્નને પૂર્વવ્યાખ્યાયિત કોષમાં પણ રાખી શકાય છે, જે સંપૂર્ણ સંદર્ભ ($A$2) સાથે લૉક કરેલ છે:

    =RegExpMatch(A5, $A$2)

    પ્રથમ કોષમાં ફોર્મ્યુલા દાખલ કર્યા પછી, તમે તેને અન્ય બધી હરોળમાં નીચે ખેંચી શકો છો.

    આ પદ્ધતિ તમામ એક્સેલ વર્ઝન માં સુંદર રીતે કામ કરે છે.

    એક જ સમયે એકથી વધુ કોષોમાં સ્ટ્રીંગ્સ મેચ કરો

    એક જ ફોર્મ્યુલા સાથે બહુવિધ સ્ટ્રીંગ્સને મેચ કરવા માટે, પ્રથમ દલીલમાં શ્રેણી સંદર્ભનો સમાવેશ કરો:

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

    વિશિષ્ટ લંબાઈની સંખ્યાને મેચ કરવા માટે રેજેક્સ

    જો તમારો ધ્યેય અંકોની ચોક્કસ સંખ્યા ધરાવતા આંકડાકીય મૂલ્યોને મેચ કરવાનો હોય, તો પછી યોગ્ય ક્વોન્ટિફાયર સાથે \d નો ઉપયોગ કરો.

    ઉદાહરણ તરીકે, બરાબર 7 અંકો ધરાવતા ઇન્વૉઇસ નંબરોને મેચ કરવા માટે, તમે \d{7} નો ઉપયોગ કરશો. જો કે, કૃપા કરીને ધ્યાનમાં રાખો કે તે 7 સાથે મેળ ખાશેઅપેક્ષા મુજબ:

    નોંધો:

    • આંતરરાષ્ટ્રીય કોડ ચકાસાયેલ નથી, તેથી તેઓ હાજર હોઈ શકે કે ન પણ હોઈ શકે.
    • રેગ્યુલર એક્સપ્રેશનમાં, \s કોઈપણ વ્હાઇટસ્પેસ અક્ષર માટે વપરાય છે જેમ કે સ્પેસ, ટેબ, કેરેજ રીટર્ન અથવા નવી લાઇન. માત્ર જગ્યાઓને મંજૂરી આપવા માટે, [-\' નો ઉપયોગ કરો. [-\.\s] ને બદલે ].
    • અક્ષર સાથે મેળ ન ખાતો રેજેક્સ

      એક ચોક્કસ અક્ષર સમાવતા ન હોય તેવા શબ્દમાળાઓ શોધવા માટે, તમે બંધબેસતા અક્ષર વર્ગો [^ ] નો ઉપયોગ કરી શકો છો કંઈપણ કૌંસમાં નથી. ઉદાહરણ તરીકે:

      • [^13] 1 અથવા 3 ન હોય તેવા કોઈપણ એક અક્ષર સાથે મેળ ખાશે.
      • [^1-3] કોઈપણ એક અક્ષર સાથે મેળ ખાશે જે 1 નથી, 2 અથવા 3 (એટલે ​​​​કે 1 થી 3 સુધીનો કોઈપણ અંક).

      ફોન નંબરોની સૂચિમાં, ધારો કે તમે તે શોધવા માંગો છો જેની પાસે દેશનો કોડ નથી. કોઈપણ આંતરરાષ્ટ્રીય કોડમાં + ચિહ્નનો સમાવેશ થાય છે તે ધ્યાનમાં રાખીને, તમે વત્તા ચિહ્ન ધરાવતા ન હોય તેવા શબ્દમાળાઓ શોધવા માટે [^\+] અક્ષર વર્ગનો ઉપયોગ કરી શકો છો. તે સમજવું અગત્યનું છે કે ઉપરોક્ત અભિવ્યક્તિ કોઈપણ એક અક્ષર સાથે મેળ ખાય છે જે + નથી. કારણ કે ફોન નંબર શબ્દમાળામાં ગમે ત્યાં હોઈ શકે છે, જરૂરી નથી કે ખૂબ જ શરૂઆતમાં, * ક્વોન્ટિફાયર દરેક અનુગામી અક્ષરને તપાસવા માટે ઉમેરવામાં આવે છે. શરૂઆત ^ અને અંત $ એન્કર ખાતરી કરે છે કે સમગ્ર સ્ટ્રિંગ પર પ્રક્રિયા કરવામાં આવી છે. પરિણામ સ્વરૂપે, અમને નીચેની રેગ્યુલર એક્સપ્રેશન મળે છે જે કહે છે કે "સ્ટ્રિંગમાં કોઈપણ સ્થિતિમાં + અક્ષર સાથે મેળ ખાતા નથી".

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

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

      રેજેક્સ ટુ નૉટ મેચ સ્ટ્રિંગ

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

      ધારો કે તમે શબ્દમાળાઓ શોધવા માંગો છો જેમાં "લીંબુ" શબ્દ સમાવતો નથી . આ રેગ્યુલર એક્સપ્રેશન એક ટ્રીટનું કામ કરશે:

      પૅટર્ન : ^((?!lemons).)*$

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

      ટેક્સ્ટ કેસને અવગણવા માટે, અમે અમારા કાર્યને કેસ-અસંવેદનશીલ બનાવવા માટે 3મી દલીલ FALSE પર સેટ કરીએ છીએ:

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

      ટીપ્સ અને નોંધો:

      • ઉપરોક્ત રેજેક્સ ફક્ત સિંગલ-લાઇન સ્ટ્રિંગ્સ માટે જ કામ કરે છે. મિલ્ટી-લાઇન સ્ટ્રિંગના કિસ્સામાં, ^ અને $ અક્ષરો ઇનપુટ સ્ટ્રિંગની શરૂઆત અને અંતને બદલે દરેક લાઇનની શરૂઆત અને અંત સાથે મેળ ખાય છે, તેથી રેજેક્સ ફક્ત પ્રથમ લાઇનમાં શોધ કરે છે.
      • અમુક લખાણ સાથે પ્રારંભ ન થાય શબ્દમાળાઓને મેચ કરવા માટે, રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરો જેમ કે ^(?!lemons).*$
      • ચોક્કસ ટેક્સ્ટ સાથે અંત ન થતી તમાળાઓને મેચ કરવા માટે, શામેલ કરોશોધ પેટર્નમાં અંતિમ સ્ટ્રિંગ એન્કર: ^((?!lemons$).)*$

      કેસ અસંવેદનશીલ મેચિંગ

      ક્લાસિક રેગ્યુલર એક્સપ્રેશનમાં, માટે એક ખાસ પેટર્ન છે કેસ-અસંવેદનશીલ મેચિંગ (?i), જે VBA RegExp માં સમર્થિત નથી. આ મર્યાદાને દૂર કરવા માટે, અમારું કસ્ટમ ફંક્શન match_case નામની 3જી વૈકલ્પિક દલીલ સ્વીકારે છે. કેસ-સંવેદનશીલ મેચિંગ કરવા માટે, તેને ફક્ત FALSE પર સેટ કરો.

      ચાલો કહીએ કે તમે તારીખો ઓળખવા માંગો છો જેમ કે 1-Mar-22 અથવા 01-MAR-2022. dd-mmm-yyyy અને d-mmm-yy ફોર્મેટને મેચ કરવા માટે, અમે નીચેના રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરી રહ્યા છીએ.

      પેટર્ન : \b\d{1,2}-(જાન્યુ10-અંક અથવા 100-અંકની સંખ્યા સહિત સ્ટ્રિંગમાં ગમે ત્યાં અંકો. જો તમે શોધી રહ્યા છો તે આ નથી, તો બંને બાજુએ સીમા શબ્દ \b મૂકો.

      પેટર્ન : \b\d{7}\b

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

      ફોન નંબરોને મેચ કરવા માટે રેજેક્સ

      ફોન નંબરો વિવિધ ફોર્મેટમાં લખી શકાય છે, તેથી તેમને મેચ કરવા માટે વધુ સુસંસ્કૃત રેગ્યુલર એક્સપ્રેશનની જરૂર છે.

      નીચેના ડેટાસેટમાં, અમે 10-અંકની સંખ્યાઓ શોધીશું જેમાં પ્રથમ 2 જૂથોમાં 3 અંકો અને છેલ્લા જૂથમાં 4 અંકો હશે. જૂથોને પીરિયડ, હાઇફન અથવા સ્પેસ વડે અલગ કરી શકાય છે. પ્રથમ જૂથ કૌંસમાં બંધ હોઈ શકે છે અથવા ન પણ હોઈ શકે.

      પેટર્ન: (\(\d{3}\)

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