Excel இல் சரங்களை பிரித்தெடுக்க Regex (ஒன்று அல்லது அனைத்து பொருத்தங்கள்)

  • இதை பகிர்
Michael Brown

உள்ளடக்க அட்டவணை

இந்த டுடோரியலில், எக்செல் இல் வழக்கமான வெளிப்பாடுகளை எப்படிப் பயன்படுத்துவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள், கொடுக்கப்பட்ட வடிவத்துடன் பொருந்தக்கூடிய சப்ஸ்ட்ரிங்க்களைக் கண்டறிந்து பிரித்தெடுக்கலாம்.

மைக்ரோசாப்ட் எக்செல் உரையைப் பிரித்தெடுக்க பல செயல்பாடுகளை வழங்குகிறது. செல்கள் இருந்து. அந்த செயல்பாடுகள் உங்கள் பணித்தாள்களில் உள்ள பெரும்பாலான சரம் பிரித்தெடுத்தல் சவால்களை சமாளிக்கும். பெரும்பாலான, ஆனால் அனைத்து இல்லை. உரை செயல்பாடுகள் தடுமாறும்போது, ​​வழக்கமான வெளிப்பாடுகள் மீட்புக்கு வரும். காத்திருங்கள்... Excel இல் RegEx செயல்பாடுகள் இல்லை! உண்மை, உள்ளமைக்கப்பட்ட செயல்பாடுகள் இல்லை. ஆனால் உங்கள் சொந்தவற்றைப் பயன்படுத்துவதைத் தடுக்கும் எதுவும் இல்லை :)

    எக்செல் விபிஏ ரீஜெக்ஸ் செயல்பாடு சரங்களைப் பிரித்தெடுக்கிறது

    உங்கள் எக்செல்-க்கு தனிப்பயன் ரீஜெக்ஸ் எக்ஸ்ட்ராக்ட் செயல்பாட்டைச் சேர்க்க, பின்வரும் குறியீட்டை VBA எடிட்டரில் ஒட்டவும். VBA இல் வழக்கமான வெளிப்பாடுகளை இயக்க, நாங்கள் உள்ளமைக்கப்பட்ட Microsoft RegExp ஆப்ஜெக்டைப் பயன்படுத்துகிறோம்.

    பொதுச் செயல்பாடு RegExpExtract(உரை சரமாக , வடிவமாக உரை , விருப்பமான instance_num ஆக முழு எண் = 0, விருப்பமான match_case As Boolean = True ) மங்கலானது. text_matches() As String Dim matches_index ஆக முழு எண்ணாக GoTo ErrHandl RegExpExtract = "" அமை regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = பேட்டர்ன் regex.Global = True regex =.MultiLe என்றால் பொருத்தம். புறக்கணிப்பு = தவறு வேறு regex.ignorecase = உண்மை முடிவு என்றால் செட் பொருத்தங்கள் = regex. Execute(text) என்றால் 0 < பொருத்தங்கள்VBA RegExp, மிகவும் சக்திவாய்ந்த .NET Regex செயல்பாடுகளைப் பற்றி விவாதிக்கும் அடுத்த பகுதியைப் படிக்க உங்களை ஊக்குவிக்கிறேன்.

    எக்செல் இல் உரையைப் பிரித்தெடுக்க தனிப்பயன் .NET அடிப்படையிலான Regex செயல்பாடு

    VBA RegExp செயல்பாடுகள் போலல்லாமல் எந்த எக்செல் பயனரால் எழுதப்படலாம், .NET RegEx என்பது டெவலப்பரின் சாம்ராஜ்யமாகும். Microsoft .NET Framework ஆனது Perl 5 உடன் இணக்கமான முழு அம்சமான வழக்கமான வெளிப்பாடு தொடரியல் ஆதரிக்கிறது. இந்த கட்டுரை உங்களுக்கு எப்படி அத்தகைய செயல்பாடுகளை எழுதுவது என்று கற்பிக்காது (நான் ஒரு ப்ரோக்ராமர் அல்ல, அதை எப்படி செய்வது என்பது பற்றி சிறிதும் யோசனை இல்லை :)

    நிலையான .NET RegEx இன்ஜின் மூலம் செயலாக்கப்பட்ட நான்கு சக்திவாய்ந்த செயல்பாடுகள் ஏற்கனவே எங்கள் டெவலப்பர்களால் எழுதப்பட்டு அல்டிமேட் சூட்டில் சேர்க்கப்பட்டுள்ளன. Excel இல் உரையைப் பிரித்தெடுப்பதற்காக சிறப்பாக வடிவமைக்கப்பட்ட செயல்பாட்டின் சில நடைமுறைப் பயன்பாடுகளை கீழே காண்போம்.

    உதவிக்குறிப்பு. .NET Regex தொடரியல் பற்றிய தகவலுக்கு, .NET ரெகுலர் எக்ஸ்பிரஷன் மொழியைப் பார்க்கவும்.

    வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி Excel இல் ஸ்டிங்ஸை எவ்வாறு பிரித்தெடுப்பது

    உங்களிடம் Ultimate Suite இன் சமீபத்திய பதிப்பு நிறுவப்பட்டிருப்பதாகக் கருதினால், வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி உரையைப் பிரித்தெடுப்பது இந்த இரண்டு படிகளைக் குறைக்கும்:

    1. Ablebits Data தாவலில், Text குழுவில், Regex Tools என்பதைக் கிளிக் செய்யவும்.
    2. Regex Tools பலகத்தில், மூலத் தரவைத் தேர்ந்தெடுத்து, உங்கள் Regex வடிவத்தை உள்ளிட்டு, Extract விருப்பத்தைத் தேர்ந்தெடுக்கவும். மதிப்பாக இல்லாமல் தனிப்பயன் செயல்பாடாக முடிவைப் பெற, சூத்திரமாகச் செருகு சரிபார்ப்பைத் தேர்ந்தெடுக்கவும்பெட்டி. முடிந்ததும், எக்ஸ்ட்ராக்ட் பொத்தானைக் கிளிக் செய்யவும்.

    உங்கள் அசல் தரவின் வலதுபுறத்தில் புதிய நெடுவரிசையில் முடிவுகள் தோன்றும்:

    AblebitsRegexExtract தொடரியல்

    எங்கள் தனிப்பயன் செயல்பாட்டில் பின்வரும் தொடரியல் உள்ளது:

    AblebitsRegexExtract(reference, regular_expression)

    எங்கே:

    • குறிப்பு (தேவை) - மூல சரம் உள்ள கலத்திற்கான குறிப்பு.
    • Regular_expression (அவசியம்) - பொருந்தக்கூடிய regex அமைப்பு.

    முக்கிய குறிப்பு! அல்டிமேட் சூட் ஃபார் எக்செல் நிறுவப்பட்ட கணினிகளில் மட்டுமே இந்தச் செயல்பாடு செயல்படும்.

    பயன்பாட்டுக் குறிப்புகள்

    உங்கள் கற்றல் வளைவை மென்மையாகவும், உங்கள் அனுபவத்தை மேலும் சுவாரஸ்யமாகவும் மாற்ற, தயவுசெய்து இந்த புள்ளிகளுக்கு கவனம் செலுத்துங்கள்:

    1. சூத்திரத்தை உருவாக்க, நீங்கள் எங்கள் Regex Tools அல்லது Excel இன் செர்ட் ஃபங்ஷன் உரையாடலைப் பயன்படுத்தலாம் அல்லது ஒரு கலத்தில் முழு செயல்பாட்டுப் பெயரை உள்ளிடவும். சூத்திரம் செருகப்பட்டதும், எந்த நேட்டிவ் ஃபார்முலாவைப் போலவே நீங்கள் அதை நிர்வகிக்கலாம் (திருத்தலாம், நகலெடுக்கலாம் அல்லது நகர்த்தலாம்).
    2. Regex Tools பலகத்தில் நீங்கள் உள்ளிடும் பேட்டர்ன் 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)), "]", ""),"[","")

    சிறப்பான வாசிப்புத்திறனுக்காக, டிலிமிட்டருக்கு கமாவைப் பயன்படுத்துகிறோம்.

    இரண்டு சரங்களுக்கு இடையில் உரையைப் பிரித்தெடுக்க ரீஜெக்ஸ்

    நாங்கள் பணியாற்றிய அணுகுமுறைஅதை உண்மையில் விளக்கவும்).

  • (?:[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:

    Regex துணை டொமைன்கள் இல்லாமல் இரண்டாம் நிலை டொமைனைப் பிரித்தெடுக்க:

    எக்செல் உரையின் பகுதிகளை வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி பிரித்தெடுப்பது இதுதான். படித்ததற்கு நன்றி, அடுத்த வாரம் எங்கள் வலைப்பதிவில் உங்களைப் பார்க்க ஆவலுடன் காத்திருக்கிறேன்!

    கிடைக்கும் பதிவிறக்கங்கள்

    Excel Regex Extract உதாரணங்கள் (.xlsm கோப்பு)

    Ultimate Suite சோதனை பதிப்பு (.exe கோப்பு)

    3>\b(0?[0-9]matches.எண்ணிக்கை - 1 text_matches(matches_index, 0) = matches.Item(matches_index) அடுத்த matches_index RegExpExtract = text_matches மற்றவை RegExpExtract = matches.Item(instance_num - 1) End என்றால் பின்வாங்கல் மற்றும் வெளியேறுதல் செயல்பாடு CrrVExtExl என்றால் முடிவு

    உங்களுக்கு VBA உடன் சிறிய அனுபவம் இருந்தால், படிப்படியான பயனர் வழிகாட்டி உதவியாக இருக்கும்: எக்செல் இல் VBA குறியீட்டை எவ்வாறு செருகுவது.

    குறிப்பு. செயல்பாடு செயல்பட, உங்கள் கோப்பை மேக்ரோ-இயக்கப்பட்ட பணிப்புத்தகமாக (.xlsm) சேமிக்கவும்.

    RegExpExtract தொடரியல்

    RegExpExtract செயல்பாடு வழக்கமான வெளிப்பாட்டுடன் பொருந்தக்கூடிய மதிப்புகளுக்கான உள்ளீட்டு சரத்தைத் தேடுகிறது மற்றும் ஒன்று அல்லது அனைத்துப் பொருத்தங்களையும் பிரித்தெடுக்கிறது.

    செயல்பாடு பின்வரும் தொடரியல் உள்ளது. :

    RegExpExtract(text, pattern, [instance_num], [match_case])

    எங்கே:

    • Text (தேவை) - தேட வேண்டிய உரை சரம்.
    • முறை (தேவை) - பொருந்தும் வழக்கமான வெளிப்பாடு. ஒரு சூத்திரத்தில் நேரடியாக வழங்கும்போது, ​​வடிவமானது இரட்டை மேற்கோள் குறிகளில் இணைக்கப்பட வேண்டும்.
    • Instance_num (விரும்பினால்) - எந்த நிகழ்வைப் பிரித்தெடுக்க வேண்டும் என்பதைக் குறிக்கும் வரிசை எண். தவிர்க்கப்பட்டால், காணப்படும் எல்லாப் பொருத்தங்களையும் (இயல்புநிலை) வழங்கும்.
    • Match_case (விரும்பினால்) - உரை வழக்கைப் பொருத்த வேண்டுமா அல்லது புறக்கணிக்க வேண்டுமா என்பதை வரையறுக்கிறது. உண்மை அல்லது தவிர்க்கப்பட்டிருந்தால் (இயல்புநிலை), கேஸ்-சென்சிட்டிவ் பொருத்தம் செய்யப்படுகிறது; தவறு என்றால் - கேஸ்-சென்சிட்டிவ்.

    எக்செல் 365, எக்செல் 2021, எக்செல் இன் அனைத்து பதிப்புகளிலும் இந்தச் செயல்பாடு செயல்படுகிறது.2019, Excel 2016, Excel 2013 மற்றும் Excel 2010.

    RegExpExtract பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டிய 4 விஷயங்கள்

    உங்கள் எக்செல் செயல்பாட்டை திறம்பட பயன்படுத்த, கவனிக்க வேண்டிய சில முக்கியமான விஷயங்கள் உள்ளன:

    1. இயல்புநிலையாக, இந்த எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி, கண்டுபிடிக்கப்பட்ட அனைத்துப் பொருத்தங்களையும் செயல்பாடு அண்டை செல்களுக்கு வழங்குகிறது. ஒரு குறிப்பிட்ட நிகழ்வைப் பெற, instance_num வாதத்திற்கு தொடர்புடைய எண்ணை வழங்கவும்.
    2. இயல்பாக, செயல்பாடு கேஸ்-சென்சிட்டிவ் ஆகும். கேஸ்-சென்சிட்டிவ் பொருத்தத்திற்கு, match_case வாதத்தை FALSE என அமைக்கவும். VBA வரம்புகள் காரணமாக, கேஸ்-இன்சென்சிட்டிவ் கன்ஸ்ட்ரக்ட் (?i) வேலை செய்யாது.
    3. ஒரு சரியான பேட்டர்ன் கிடைக்கவில்லை , செயல்பாடு எதையும் தராது (வெற்று சரம்).
    4. முறை தவறானதாக இருந்தால் , #VALUE! பிழை ஏற்படுகிறது.

    உங்கள் பணித்தாள்களில் இந்த தனிப்பயன் செயல்பாட்டைப் பயன்படுத்தத் தொடங்கும் முன், அது என்ன திறன் கொண்டது என்பதை நீங்கள் புரிந்து கொள்ள வேண்டும், இல்லையா? கீழே உள்ள எடுத்துக்காட்டுகள் சில பொதுவான பயன்பாட்டு நிகழ்வுகளை உள்ளடக்கியது மற்றும் Dynamic Array Excel (Microsoft 365 மற்றும் Excel 2021) மற்றும் பாரம்பரிய Excel (2019 மற்றும் பழைய பதிப்புகள்) ஆகியவற்றில் ஏன் நடத்தை வேறுபடலாம் என்பதை விளக்குகிறது.

    குறிப்பு. அவுட் ரெஜெக்ஸ் எடுத்துக்காட்டுகள் விசித்திரமான எளிய தரவுத் தொகுப்புகளுக்கு எழுதப்பட்டுள்ளன. உங்கள் உண்மையான பணித்தாள்களில் அவை குறைபாடற்ற முறையில் செயல்படும் என்று எங்களால் உத்தரவாதம் அளிக்க முடியாது. ரெஜெக்ஸில் அனுபவம் உள்ளவர்கள், வழக்கமான வெளிப்பாடுகளை எழுதுவது என்பது முழுமைக்கான முடிவில்லாத பாதை என்பதை ஒப்புக்கொள்வார்கள் - கிட்டத்தட்ட எப்போதும் செய்ய ஒரு வழி இருக்கிறது.இது மிகவும் நேர்த்தியானது அல்லது பரந்த அளவிலான உள்ளீட்டுத் தரவைக் கையாளும் திறன் கொண்டது.

    சரத்திலிருந்து எண்ணைப் பிரித்தெடுக்க ரீஜெக்ஸ்

    "எளிமையிலிருந்து சிக்கலானது வரை" கற்பித்தலின் அடிப்படைக் கொள்கையைப் பின்பற்றி, நாங்கள் மிகவும் எளிமையான விஷயத்துடன் தொடங்குவோம்: சரத்திலிருந்து எண்ணைப் பிரித்தெடுத்தல்.

    தி எந்த எண்ணை மீட்டெடுக்க வேண்டும் என்பதை நீங்கள் தீர்மானிக்க வேண்டிய முதல் விஷயம்: முதல், கடைசி, குறிப்பிட்ட நிகழ்வு அல்லது அனைத்து எண்களும் \d என்பது 0 முதல் 9 வரையிலான எந்த இலக்கத்தையும் குறிக்கிறது, மேலும் + என்பது ஒன்று அல்லது அதற்கு மேற்பட்ட முறைகளைக் குறிக்கிறது, எங்கள் வழக்கமான வெளிப்பாடு இந்த வடிவத்தை எடுக்கும்:

    முறை : \d+

    அமைப்பு instance_num to 1 மற்றும் நீங்கள் விரும்பிய முடிவைப் பெறுவீர்கள்:

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

    A5 என்பது அசல் சரமாக இருக்கும்.

    வசதிக்காக, நீங்கள் உள்ளிடலாம். முன் வரையறுக்கப்பட்ட கலத்தில் உள்ள வடிவத்தை ($A$2 ) மற்றும் $ குறியுடன் அதன் முகவரியைப் பூட்டவும்:

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

    கடைசி எண்ணைப் பெறவும்

    சரத்தில் கடைசி எண்ணைப் பிரித்தெடுக்கவும் , பயன்படுத்துவதற்கான பேட்டர்ன் இதோ:

    முறை : (\d+)(?!.*\d)

    மனித மொழியில் மொழிபெயர்க்கப்பட்டது , அது கூறுகிறது: வேறு எந்த எண்ணாலும் பின்பற்றப்படாத (எங்கும், உடனடியாக அல்ல) எண்ணைக் கண்டறியவும். இதை வெளிப்படுத்த, எதிர்மறையான பார்வையை (?!.*\d) பயன்படுத்துகிறோம், அதாவது பேட்டர்ன் வலதுபுறத்தில் அதற்கு முன் எத்தனை எழுத்துக்கள் இருந்தாலும் வேறு எந்த இலக்கமும் (\d) இருக்கக்கூடாது.

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

    உதவிக்குறிப்புகள்:

    • குறிப்பிட்ட நிகழ்வைப் பெற, முறை மற்றும் பொருத்தமான சீரியலுக்கு \d+ ஐப் பயன்படுத்தவும் instance_num க்கான எண்.
    • எல்லா எண்களையும் பிரித்தெடுப்பதற்கான சூத்திரம் அடுத்த எடுத்துக்காட்டில் விவாதிக்கப்படுகிறது.

    அனைத்து பொருத்தங்களையும் பிரித்தெடுக்க Regex

    எங்கள் உதாரணத்தை இன்னும் கொஞ்சம் தள்ளி, ஒரு சரத்தில் இருந்து எல்லா எண்களையும் பெற விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம், ஒன்று மட்டும் அல்ல.

    நீங்கள் நினைவில் வைத்திருப்பது போல், பிரித்தெடுக்கப்பட்ட பொருத்தங்களின் எண்ணிக்கை விருப்பமான <1 மூலம் கட்டுப்படுத்தப்படும்>instance_num வாதம். இயல்புநிலையானது எல்லாப் பொருத்தங்களும் ஆகும், எனவே நீங்கள் இந்த அளவுருவைத் தவிர்க்கலாம்:

    =RegExpExtract(A2, "\d+")

    சூத்திரம் ஒரு கலத்திற்கு அழகாக வேலை செய்கிறது, ஆனால் டைனமிக் அரே எக்செல் மற்றும் டைனமிக் அல்லாத பதிப்புகளில் நடத்தை வேறுபடுகிறது.

    எக்செல் 365 மற்றும் எக்செல் 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]+")

    எல்லாப் பொருத்தங்களையும் ஒரே கலத்தில் வெளியிட, RegExpExtract செயல்பாட்டை TEXTJOIN இல் உள்ளமைக்க இது போன்றது:

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

    Regex to சரத்திலிருந்து மின்னஞ்சல் முகவரியைப் பிரித்தெடுக்கவும்

    பல்வேறு தகவல்களைக் கொண்ட சரத்திலிருந்து மின்னஞ்சல் முகவரியைப் பெற, மின்னஞ்சல் முகவரி அமைப்பைப் பிரதிபலிக்கும் வழக்கமான வெளிப்பாட்டை எழுதவும்.

    முறை : [\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 போன்ற தேதிகளைப் பிரித்தெடுக்க, 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

    0> முறை : \(?\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" ஆகியவற்றுக்கு இடையே உள்ள அனைத்தையும் பெற, பின்வரும் வழக்கமான வெளிப்பாட்டைப் பயன்படுத்தவும்.

    முறை : test 1(.*?)test 2

    முழுமையான சூத்திரம்:

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

    URL இலிருந்து டொமைனை பிரித்தெடுக்க Regex

    வழக்கமான வெளிப்பாடுகளுடன் கூட, URL களில் இருந்து டொமைன் பெயர்களைப் பிரித்தெடுப்பது சாதாரணமான பணி அல்ல. தந்திரம் செய்யும் முக்கிய உறுப்பு பிடிப்பு அல்லாத குழுக்கள். உங்களின் இறுதி இலக்கைப் பொறுத்து, கீழே உள்ள ரீஜெக்ஸ்களில் ஒன்றைத் தேர்வு செய்யவும்.

    சப்டொமைன்கள் உட்பட முழு டொமைன் பெயரைப் பெற

    முறை : (?: https?\:

    மைக்கேல் பிரவுன் ஒரு பிரத்யேக தொழில்நுட்ப ஆர்வலர், மென்பொருள் கருவிகளைப் பயன்படுத்தி சிக்கலான செயல்முறைகளை எளிதாக்குவதில் ஆர்வம் கொண்டவர். தொழில்நுட்பத் துறையில் ஒரு தசாப்தத்திற்கும் மேலான அனுபவத்துடன், மைக்ரோசாஃப்ட் எக்செல் மற்றும் அவுட்லுக், அத்துடன் கூகுள் தாள்கள் மற்றும் டாக்ஸில் தனது திறமைகளை மெருகேற்றியுள்ளார். மைக்கேலின் வலைப்பதிவு அவரது அறிவையும் நிபுணத்துவத்தையும் மற்றவர்களுடன் பகிர்ந்துகொள்வதற்காக அர்ப்பணிக்கப்பட்டுள்ளது, உற்பத்தித்திறன் மற்றும் செயல்திறனை மேம்படுத்துவதற்கு எளிதாகப் பின்பற்றக்கூடிய உதவிக்குறிப்புகள் மற்றும் பயிற்சிகளை வழங்குகிறது. நீங்கள் ஒரு அனுபவமிக்க நிபுணராக இருந்தாலும் அல்லது தொடக்கநிலையாளராக இருந்தாலும், மைக்கேலின் வலைப்பதிவு இந்த அத்தியாவசிய மென்பொருள் கருவிகளில் இருந்து அதிகமானவற்றைப் பெறுவதற்கு மதிப்புமிக்க நுண்ணறிவுகளையும் நடைமுறை ஆலோசனைகளையும் வழங்குகிறது.