உள்ளடக்க அட்டவணை
இந்த டுடோரியலில், எக்செல் இல் சரங்களை பொருத்துவதற்கு regex ஐ எவ்வாறு பயன்படுத்துவது என்பது பற்றி ஆழமாகப் பார்ப்போம்.
ஒரு வரம்பில் ஒரு குறிப்பிட்ட மதிப்பைக் கண்டறிய வேண்டியிருக்கும் போது கலங்களில், நீங்கள் MATCH அல்லது XMATCH செயல்பாட்டைப் பயன்படுத்துவீர்கள். ஒரு கலத்தில் ஒரு குறிப்பிட்ட சரத்தைத் தேடும் போது, FIND மற்றும் SEARCH செயல்பாடுகள் கைக்கு வரும். கொடுக்கப்பட்ட வடிவத்துடன் பொருந்தக்கூடிய தகவலை ஒரு கலத்தில் உள்ளதா என்று உங்களுக்கு எப்படித் தெரியும்? வெளிப்படையாக, வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்துவதன் மூலம். ஆனால் பெட்டிக்கு வெளியே எக்செல் ரீஜெக்ஸை ஆதரிக்காது! கவலை வேண்டாம், நாங்கள் கட்டாயப்படுத்துவோம் :)
எக்செல் VBA Regex செயல்பாடு சரங்களை பொருத்துவதற்கு
வழக்கமான எக்ஸ்ப்ரெஷன்களைப் பயன்படுத்துவதற்காக, தலைப்பில் இருந்து தெளிவாகத் தெரிகிறது எக்செல் இல், நீங்கள் உங்கள் சொந்த செயல்பாட்டை உருவாக்க வேண்டும். அதிர்ஷ்டவசமாக, எக்செல் VBA இல் உள்ளமைக்கப்பட்ட RegExp ஆப்ஜெக்ட் உள்ளது, அதை நீங்கள் கீழே காட்டப்பட்டுள்ளபடி உங்கள் குறியீட்டில் பயன்படுத்தலாம்:
பொதுச் செயல்பாடு RegExpMatch(input_range as Range, pattern as Boolean = True ) என மாறுபட்ட மங்கலான arRes() முடிவுகளைச் சேமிப்பதற்கான மாறுபாடு வரிசையாக மங்கலான iInputCurRow, iInputCurCol, cntInputRows, cntInputCols என நீண்ட 'மூல வரம்பில் தற்போதைய வரிசையின் குறியீடு, மூல வரம்பில் உள்ள தற்போதைய நெடுவரிசையின் குறியீடு, வரிசைகளின் எண்ணிக்கை, எண்ணிக்கை பிழையில் உள்ள நெடுவரிசைகள் GoTo ErrHandl RegExpMatch = arRes Set regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = pattern regex.Global = True regex.MultiLine = True எனில் True = match_case Else = ட்ரூஸ் ட்ரூஸ் முடிவுவெளிப்பாடுகள்.முறை : \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)
Match regex உடன் Excel IF சூத்திரம்
உள்ளடங்கிய மற்றும் தனிப்பயன் காரணமாகசெயல்பாடுகள் நன்றாகச் செல்கின்றன, ஒரே சூத்திரத்தில் அவற்றைப் பயன்படுத்துவதைத் தடுக்க எதுவும் இல்லை.
வழக்கமான வெளிப்பாடு பொருந்தினால், வேறு ஏதாவது பொருந்தவில்லை என்றால், அதைத் திரும்ப அல்லது கணக்கிட, தனிப்பயன் RegExpMatch ஐ உட்பொதிக்கவும். IF இன் தருக்க உரையில் செயல்பாடு:
IF(RegExpMatch(...), [value_if_true], [value_if_false])உதாரணமாக, A5 இல் உள்ள ஒரு சரம் சரியான மின்னஞ்சல் முகவரியைக் கொண்டிருந்தால், நீங்கள் "ஆம்" என்று வழங்கலாம்; இல்லையெனில் "இல்லை".
=IF(RegExpMatch(A5, $A$2,), "Yes", "No")
regex பொருந்தினால் எண்ணுங்கள்
ஏனெனில் நேட்டிவ் எக்செல் செயல்பாடுகள் வழக்கமான வெளிப்பாடுகளை ஆதரிக்காது, இது COUNTIS அல்லது COUNTIFS செயல்பாட்டில் நேரடியாக ரீஜெக்ஸை வைக்க முடியாது. அதிர்ஷ்டவசமாக, எங்கள் தனிப்பயன் செயல்பாட்டைப் பயன்படுத்தி நீங்கள் இந்தச் செயல்பாட்டைப் பின்பற்றலாம்.
ஃபோன் எண்களைப் பொருத்துவதற்கும் முடிவுகளை B நெடுவரிசையில் வெளியிடுவதற்கும் நீங்கள் regex ஐப் பயன்படுத்தியுள்ளீர்கள் என்று வைத்துக்கொள்வோம். எத்தனை செல்கள் ஃபோன் எண்களைக் கொண்டிருக்கின்றன என்பதைக் கண்டறிய, உங்களுக்குத் தேவை B5:B9 இல் உள்ள TRUE மதிப்புகளை எண்ணுவதற்கு. நிலையான COUNTIF சூத்திரத்தைப் பயன்படுத்தி அதை எளிதாகச் செய்யலாம்:
=COUNTIF(B5:B9, TRUE)
உங்கள் பணித்தாளில் கூடுதல் நெடுவரிசைகள் வேண்டாமா? எந்த பிரச்சினையும் இல்லை. எங்களின் தனிப்பயன் செயல்பாடு ஒரே நேரத்தில் பல கலங்களைச் செயலாக்க முடியும் என்பதையும், Excel இன் SUM ஆனது ஒரு வரிசையில் மதிப்புகளைச் சேர்க்க முடியும் என்பதையும் நினைவில் வைத்து, நீங்கள் செய்ய வேண்டியது இங்கே:
- RegExpMatch க்கு வரம்புக் குறிப்பை வழங்கவும், அதனால் அது ஒரு TRUE மற்றும் FALSE மதிப்புகளின் வரிசைபூஜ்ஜியங்கள்.
- இதன் விளைவாக வரும் வரிசையில் 1 மற்றும் 0 ஐ சேர்க்க SUM செயல்பாட்டைப் பெறவும் அல்டிமேட் சூட் உடன்
எங்கள் அல்டிமேட் சூட்டின் பயனர்கள், ஆட்-இன் நிறுவலின் போது எக்செல் உடன் சீராக ஒருங்கிணைக்கப்படுவதால், தங்கள் பணிப்புத்தகங்களில் எந்த VBA குறியீட்டையும் சேர்க்காமலேயே நான்கு சக்திவாய்ந்த Regex செயல்பாடுகளைப் பயன்படுத்த முடியும். எங்களின் தனிப்பயன் செயல்பாடுகள் நிலையான .NET RegEx இன்ஜின் மூலம் செயலாக்கப்படுகிறது மற்றும் முழு அம்சங்களுடன் கூடிய கிளாசிக் வழக்கமான வெளிப்பாடுகளை ஆதரிக்கிறது.
தனிப்பயன் RegexMatch செயல்பாட்டை எவ்வாறு பயன்படுத்துவது
உங்களிடம் Ultimate Suite இன் சமீபத்திய பதிப்பு நிறுவப்பட்டுள்ளது என்று வைத்துக்கொள்வோம் ( 2021.4 அல்லது அதற்குப் பிறகு), நீங்கள் இரண்டு எளிய படிகளில் Regex Match சூத்திரத்தை உருவாக்கலாம்:
- Ablebits Data தாவலில், Text குழுவில், கிளிக் செய்யவும் Regex Tools .
- தேர்ந்தெடு மூலச் சரங்களை.
- உங்கள் வடிவத்தை உள்ளிடவும்.
- பொருந்து விருப்பத்தைத் தேர்வு செய்யவும்.
- முடிவுகளை சூத்திரங்களாகப் பெற, மதிப்புகள் அல்ல, <-ஐத் தேர்ந்தெடுக்கவும் 8>சூத்திரமாகச் செருகவும் தேர்வுப்பெட்டி.
- பொருந்து பொத்தானைக் கிளிக் செய்யவும்.
சிறிது நேரம் கழித்து, AblebitsRegexMatch செயல்பாடு உங்கள் தரவின் வலதுபுறத்தில் ஒரு புதிய நெடுவரிசையில் செருகப்பட்டது.
கீழே உள்ள ஸ்கிரீன்ஷாட்டில், A நெடுவரிசையில் 7-இலக்கங்கள் உள்ளதா என்பதைச் செயல்பாடு சரிபார்க்கிறது. எண்கள் இல்லையா ஒரு கலத்தில் செருகலாம் நேரடியாக நிலையான செயல் செயல்பாடு உரையாடல் பெட்டி வழியாக, இது AblebitsUDFs இன் கீழ் வகைப்படுத்தப்பட்டுள்ளது.
மேலும் தகவலுக்கு, தயவுசெய்து AblebitsRegexMatch செயல்பாட்டைப் பார்க்கவும்.
எக்செல் இல் வழக்கமான எக்ஸ்பிரஷன் மேட்ச் செய்வது எப்படி. படித்ததற்கு நன்றி, அடுத்த வாரம் எங்கள் வலைப்பதிவில் உங்களைப் பார்ப்பதற்கு ஆவலுடன் காத்திருக்கிறேன்!
கிடைக்கும் பதிவிறக்கங்கள்
Excel Regex Match உதாரணங்கள் (.xlsm கோப்பு)
Ultimate Suite 14- நாள் முழு செயல்பாட்டு பதிப்பு (.exe கோப்பு)
cntInputRows என்றால் = input_range.Rows.Count cntInputCols = input_range.Columns.Count ReDim arRes(1 to cntInputRows, 1 to cntInputCols) for iInputCurRow = 1 to cntInputRows for iInputCurCol =CR .Cells(iInputCurRow, iInputCurCol).மதிப்பு) அடுத்தது RegExpMatch = arRes Exit Function ErrHandl: RegExpMatch = CVErr(xlErrValue) இறுதிச் செயல்பாடுVBA எடிட்டரில் குறியீட்டை ஒட்டவும், மேலும் உங்கள் புதிய <2ExpatchM செயல்பாடு<2ExpatchM Reg பயன்படுத்த தயாராக உள்ளது. நீங்கள் VBA உடன் மிகவும் அனுபவம் வாய்ந்தவராக இல்லாவிட்டால், இந்த வழிகாட்டி உதவியாக இருக்கும்: எக்செல் இல் VBA குறியீட்டை எவ்வாறு செருகுவது.
குறிப்பு. குறியீட்டைச் செருகிய பிறகு, உங்கள் கோப்பை மேக்ரோ-இயக்கப்பட்ட பணிப்புத்தகமாக (.xlsm) சேமிக்க நினைவில் கொள்ளுங்கள்.
RegExpMatch தொடரியல்
RegExpMatch செயல்பாடு மூல சரத்தின் ஏதேனும் ஒரு பகுதி வழக்கமான வெளிப்பாட்டுடன் பொருந்துகிறதா என்பதைச் சரிபார்க்கிறது. இதன் விளைவாக ஒரு பூலியன் மதிப்பு: குறைந்தது ஒரு பொருத்தம் கண்டறியப்பட்டால் TRUE, இல்லையெனில் தவறு.
எங்கள் தனிப்பயன் செயல்பாட்டில் 3 வாதங்கள் உள்ளன - முதல் இரண்டு தேவை மற்றும் கடைசியானது விருப்பமானது:
RegExpMatch(text , பேட்டர்ன், [match_case])எங்கே:
- உரை (தேவை) - தேடுவதற்கு ஒன்று அல்லது அதற்கு மேற்பட்ட சரங்கள். செல் அல்லது வரம்புக் குறிப்பாக வழங்கப்படலாம்.
- முறை (தேவை) - பொருந்தும் வழக்கமான வெளிப்பாடு. ஒரு சூத்திரத்தில் நேரடியாக வைக்கப்படும் போது, ஒரு முறை இரட்டை மேற்கோள்களில் இணைக்கப்பட வேண்டும்.
- Match_case (விரும்பினால்) - பொருத்தத்தை வரையறுக்கிறதுவகை. உண்மை அல்லது தவிர்க்கப்பட்டிருந்தால் (இயல்புநிலை), கேஸ்-சென்சிட்டிவ் பொருத்தம் செய்யப்படுகிறது; FALSE - கேஸ் இன்சென்சிட்டிவ் என்றால்.
எக்செல் 365, எக்செல் 2021, எக்செல் 2019, எக்செல் 2016, எக்செல் 2013 மற்றும் எக்செல் 2010 ஆகியவற்றின் அனைத்து பதிப்புகளிலும் இந்தச் செயல்பாடு செயல்படுகிறது.
3 விஷயங்கள் நீங்கள் RegExpMatch பற்றி தெரிந்து கொள்ள வேண்டும்
நடைமுறை கணக்கீடுகளுக்கு வருவதற்கு முன், சில தொழில்நுட்பங்களை தெளிவுபடுத்தும் பின்வரும் புள்ளிகளை கவனத்தில் கொள்ளவும்:
- செயல்பாடு ஒற்றை செல் அல்லது கலங்களின் வரம்பு . பிந்தைய வழக்கில், இந்த எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி, டைனமிக் வரிசை அல்லது கசிவு வரம்பில் முடிவுகள் அண்டை செல்களில் வழங்கப்படுகின்றன.
- இயல்புநிலையாக, செயல்பாடு கேஸ்-சென்சிட்டிவ் . உரை வழக்கைப் புறக்கணிக்க, match_case வாதத்தை FALSE என அமைக்கவும். VBA Regexp வரம்புகள் காரணமாக, கேஸ்-சென்சிட்டிவ் பேட்டர்ன் (?i) ஆதரிக்கப்படவில்லை.
- சரியான பேட்டர்ன் கிடைக்கவில்லை எனில், செயல்பாடு 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 எழுத்தைப் பயன்படுத்தவும். உங்கள் குறிப்பிட்ட பணியைப் பொறுத்து, பொருத்தமான அளவுகோலைச் சேர்க்கவும் அல்லது மிகவும் சிக்கலான வடிவத்தை உருவாக்கவும்.
எந்த எண்ணையும் பொருத்த ரீஜெக்ஸ்
எந்த நீளத்தின் எந்த எண்ணையும் பொருத்த, + அளவைப் பொருத்துவதற்கு / d எழுத்து, இது 1 அல்லது அதற்கு மேற்பட்ட இலக்கங்களைக் கொண்ட எண்களைத் தேடுகிறது.
முறை : \d+
=RegExpMatch(A5:A9, "\d+")
குறிப்பிட்ட நீளத்தின் எண்ணைப் பொருத்த ரீஜெக்ஸ்
குறிப்பிட்ட எண்ணிக்கையிலான இலக்கங்களைக் கொண்ட எண் மதிப்புகளுடன் பொருந்துவதே உங்கள் இலக்காக இருந்தால், பொருத்தமான அளவுகோலுடன் \d ஐப் பயன்படுத்தவும்.
உதாரணமாக, சரியாக 7 இலக்கங்களைக் கொண்ட விலைப்பட்டியல் எண்களைப் பொருத்த, நீங்கள் \d{7} ஐப் பயன்படுத்த வேண்டும். இருப்பினும், இது 7 உடன் பொருந்தும் என்பதை நினைவில் கொள்ளவும்எதிர்பார்த்தபடி:
குறிப்புகள்:
- சர்வதேச குறியீடுகள் சரிபார்க்கப்படவில்லை, அதனால் அவை இருக்கலாம் அல்லது இல்லாமல் இருக்கலாம்.
- வழக்கமான வெளிப்பாடுகளில், \s என்பது ஸ்பேஸ், டேப், கேரேஜ் ரிட்டர்ன் அல்லது புதிய லைன் போன்ற எந்த இடைவெளி எழுத்தையும் குறிக்கிறது. இடைவெளிகளை மட்டும் அனுமதிக்க, [-\ ஐப் பயன்படுத்தவும். ] என்பதற்குப் பதிலாக [-\.\s].
- [^13] 1 அல்லது 3 இல்லாத எந்த ஒரு எழுத்துக்கும் பொருந்தும்.
- [^1-3] 1 அல்லாத எந்த ஒரு எழுத்துக்கும் பொருந்தும், 2 அல்லது 3 (அதாவது 1 முதல் 3 வரையிலான எந்த இலக்கமும்).
- மேலே உள்ள ரீஜெக்ஸ் ஒற்றை-வரி சரங்களுக்கு மட்டுமே வேலை செய்கிறது. மில்டி-லைன் சரங்களில், ^ மற்றும் $ எழுத்துக்கள் உள்ளீட்டு சரத்தின் ஆரம்பம் மற்றும் முடிவிற்குப் பதிலாக ஒவ்வொரு வரியின் ஆரம்பம் மற்றும் முடிவுடன் பொருந்துகின்றன, எனவே ரீஜெக்ஸ் முதல் வரியில் மட்டுமே தேடுகிறது.
- சில உரையுடன் தொடங்காத சரங்களை பொருத்த , ^(?!lemons)*$
- போன்ற வழக்கமான வெளிப்பாட்டைப் பயன்படுத்தவும். முடிவடையாத குறிப்பிட்ட உரையுடன் சரங்களை பொருத்த, அடங்கும்தேடல் வடிவத்தில் இறுதிச் சரம் நங்கூரம்: ^((?!lemons$).)*$
Regex to NOT பொருந்தக்கூடிய எழுத்து
குறிப்பிட்ட எழுத்துக்குறி இல்லாத சரங்களைக் கண்டறிய, பொருந்தக்கூடிய [^ ] எழுத்து வகைகளைப் பயன்படுத்தலாம் அடைப்புக்குறிக்குள் இல்லாத எதுவும். எடுத்துக்காட்டாக:
தொலைபேசி எண்களின் பட்டியலில், நாட்டின் குறியீடு இல்லாதவற்றைக் கண்டறிய வேண்டும் என்று வைத்துக்கொள்வோம். எந்த ஒரு சர்வதேச குறியீட்டிலும் + குறி அடங்கும் என்பதை மனதில் வைத்து, கூட்டல் குறி இல்லாத சரங்களைக் கண்டறிய [^\+] எழுத்து வகுப்பைப் பயன்படுத்தலாம். மேலே உள்ள வெளிப்பாடு + அல்லாத எந்த ஒரு எழுத்துக்கும் பொருந்துகிறது என்பதை உணர வேண்டியது அவசியம். ஒரு ஃபோன் எண் ஒரு சரத்தில் எங்கு வேண்டுமானாலும் இருக்கலாம், ஆரம்பத்தில் அவசியமில்லை, ஒவ்வொரு அடுத்தடுத்த எழுத்தையும் சரிபார்க்க * குவாண்டிஃபையர் சேர்க்கப்படுகிறது. தொடக்க ^ மற்றும் முடிவு $ அறிவிப்பாளர்கள் முழு சரமும் செயலாக்கப்படுவதை உறுதி செய்கின்றன. இதன் விளைவாக, "சரத்தில் உள்ள எந்த நிலையிலும் + எழுத்துடன் பொருந்தாதே" என்று கீழே உள்ள வழக்கமான வெளிப்பாட்டைப் பெறுகிறோம்.
முறை :^[^\+]*$
=RegExpMatch(A5, "^[^\+]*$")
Regex to NOT Match string
இதற்கு சிறப்பு வழக்கமான வெளிப்பாடு தொடரியல் இல்லை என்றாலும் ஒரு குறிப்பிட்ட சரத்துடன் பொருந்தவில்லை, எதிர்மறையான தோற்றத்தைப் பயன்படுத்தி இந்த நடத்தையை நீங்கள் பின்பற்றலாம்.
"எலுமிச்சை" என்ற வார்த்தை இல்லாத சரங்களை நீங்கள் கண்டுபிடிக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். இந்த வழக்கமான வெளிப்பாடு ஒரு விருந்தளிக்கும்:
முறை : ^((?!எலுமிச்சை).)*$
நிச்சயமாக, இங்கே சில விளக்கம் தேவை. எதிர்மறையான தோற்றம் (?!எலுமிச்சை) முன்னால் "எலுமிச்சை" என்ற வார்த்தை இல்லையா என்பதைப் பார்க்க வலதுபுறமாகத் தெரிகிறது. "எலுமிச்சை" இல்லை என்றால், புள்ளி ஒரு கோடு இடைவெளியைத் தவிர எந்த எழுத்துக்கும் பொருந்தும். மேலே உள்ள வெளிப்பாடு ஒரே ஒரு சரிபார்ப்பைச் செய்கிறது, மேலும் * குவாண்டிஃபையர் அதை பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட முறை மீண்டும் செய்கிறது, ^ ஆல் தொகுக்கப்பட்ட சரத்தின் தொடக்கத்திலிருந்து $ ஆல் நங்கூரமிடப்பட்ட சரத்தின் இறுதி வரை.
உரை வழக்கைப் புறக்கணிக்க, எங்கள் செயல்பாட்டை கேஸ்-சென்சிட்டிவ் செய்ய 3வது வாதத்தை FALSE என அமைத்துள்ளோம்:
=RegExpMatch(A5, $A$2, FALSE)
உதவிக்குறிப்புகள் மற்றும் குறிப்புகள்:
Case insensitive matching
கிளாசிக் ரெகுலர் எக்ஸ்ப்ரெஷன்களில், இதற்கான சிறப்பு முறை உள்ளது கேஸ்-சென்சிட்டிவ் மேட்சிங் (?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")
தொலைபேசி எண்களைப் பொருத்துவதற்கு Regex
தொலைபேசி எண்களை பல்வேறு வடிவங்களில் எழுத முடியும் என்பதால், அவற்றைப் பொருத்துவதற்கு மிகவும் நுட்பமான வழக்கமான வெளிப்பாடு தேவைப்படுகிறது.
கீழே உள்ள தரவுத்தொகுப்பில், முதல் 2 குழுக்களில் 3 இலக்கங்களையும் கடைசி குழுவில் 4 இலக்கங்களையும் கொண்ட 10 இலக்க எண்களைத் தேடுவோம். குழுக்களை ஒரு காலம், ஹைபன் அல்லது இடைவெளி மூலம் பிரிக்கலாம். முதல் குழு அடைப்புக்குறிக்குள் இணைக்கப்படலாம் அல்லது இல்லாமல் இருக்கலாம்.
முறை: (\(\d{3}\)