உள்ளடக்க அட்டவணை
வெள்ளை இடங்களை மிகச் சிறந்த முறையில் கையாள விரும்புகிறீர்களா? ஒரு கலத்தில் உள்ள அனைத்து இடைவெளிகளையும் அகற்ற வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தவும், பல இடைவெளிகளை ஒரு எழுத்துக்குறி மூலம் மாற்றவும், எண்களுக்கு இடையில் இடைவெளிகளை மட்டும் ஒழுங்கமைக்கவும் மற்றும் பலவற்றை செய்யவும்.
நீங்கள் எந்த உள்ளீட்டுத் தரவைப் பயன்படுத்துகிறீர்களோ, அதைச் சந்திக்க மாட்டீர்கள். இடைவெளிகள் இல்லாத தரவுத்தொகுப்பு. பெரும்பாலான சந்தர்ப்பங்களில், இடைவெளி நன்றாக உள்ளது - நீங்கள் அதை எளிதாகப் புரிந்துகொள்வதற்கு வெவ்வேறு தகவல்களைப் பிரிக்க அதைப் பயன்படுத்துகிறீர்கள். இருப்பினும், சில சூழ்நிலைகளில், இது தீயதாக மாறலாம் - கூடுதல் இடைவெளிகள் உங்கள் சூத்திரங்களைக் குழப்பி, உங்கள் பணித்தாள்களை கிட்டத்தட்ட நிர்வகிக்க முடியாததாக மாற்றலாம்.
எக்செல் இல் இடைவெளிகளை ஒழுங்கமைக்க வழக்கமான வெளிப்பாட்டை ஏன் பயன்படுத்த வேண்டும்?
எக்ஸெல் ஒர்க்ஷீட்களில் உள்ள இடைவெளிகளை அகற்ற வழக்கமான எக்ஸ்ப்ரெஷன்களைப் பயன்படுத்துவதற்கு முன், முதலில் மனதில் தோன்றும் கேள்வியை நான் கவனிக்க விரும்புகிறேன் - எக்செல் ஏற்கனவே டிஆர்ஐஎம் வைத்திருக்கும் போது நமக்கு ஏன் ரீஜெக்ஸ்கள் தேவை? செயல்பாடு?
வேறுபாட்டைப் புரிந்துகொள்வதற்கு, ஒவ்வொரு சந்தர்ப்பத்திலும் இடைவெளியாகக் கருதப்படுவதைப் பார்ப்போம்:
- உள்ளமைக்கப்பட்ட TRIM செயல்பாடு ஸ்பேஸ் கேரக்டரை மட்டுமே அகற்றும் இது 7-பிட் ASCII அமைப்பில் 32 மதிப்பைக் கொண்டுள்ளது.
- வழக்கமான வெளிப்பாடுகள் இடைவெளி ( ), டேப் (\t), கேரேஜ் ரிட்டர்ன் (\r) மற்றும் புதியது போன்ற இடைவெளியின் சில வெவ்வேறு வடிவங்களை அடையாளம் காண முடியும். வரி (\n). கூடுதலாக, ஒயிட்ஸ்பேஸ் எழுத்து (\s) உள்ளது, இது அனைத்து வகைகளுக்கும் பொருந்துகிறது மற்றும் மூல உள்ளீட்டை சுத்தம் செய்வதற்கு மிகவும் உதவியாக இருக்கும்தரவு.
திரைக்குப் பின்னால் என்ன நடக்கிறது என்பதைத் தெரிந்துகொள்வதால், தீர்வு காண்பது மிகவும் எளிதானது அல்லவா?
எக்செல் இல் வழக்கமான வெளிப்பாடுகளை எவ்வாறு இயக்குவது
பெட்டிக்கு வெளியே உள்ள Excel வழக்கமான வெளிப்பாடுகளை ஆதரிக்காது என்பது அனைவரும் அறிந்த உண்மை. அவற்றை இயக்க, நீங்கள் தனிப்பயன் VBA செயல்பாட்டை உருவாக்க வேண்டும். அதிர்ஷ்டவசமாக, எங்களிடம் ஏற்கனவே RegExpReplace என்ற பெயர் உள்ளது. காத்திருங்கள், நாங்கள் அகற்றுவது பற்றி பேசும்போது ஏன் "மாற்று"? எக்செல் மொழியில், "நீக்கு" என்பது "வெற்று சரத்துடன் மாற்றவும்" என்பதற்கான மற்றொரு வார்த்தையாகும் :)
உங்கள் எக்செல் இல் செயல்பாட்டைச் சேர்க்க, இந்தப் பக்கத்திலிருந்து அதன் குறியீட்டை நகலெடுத்து, VBA எடிட்டரில் ஒட்டவும். , மற்றும் உங்கள் கோப்பை மேக்ரோ-செயல்படுத்தப்பட்ட பணிப்புத்தகமாகச் சேமிக்கவும் (.xlsm).
உங்கள் குறிப்புக்கான செயல்பாட்டின் தொடரியல் இதோ:
RegExpReplace(text, pattern, replacement, [instance_num] , [match_case])முதல் மூன்று வாதங்கள் தேவை, கடைசி இரண்டு விருப்பமானவை.
எங்கே:
- உரை - அசல் சரம் தேடு அகற்ற ஒயிட்ஸ்பேஸ் , இந்த வாதத்தை நீங்கள் அமைக்க வேண்டும்:
- வெற்று சரம் ("") அனைத்து இடைவெளிகளையும் ஒழுங்கமைக்க<11
- ஸ்பேஸ் எழுத்து (" ") பல இடைவெளிகளை ஒரு ஸ்பேஸ் எழுத்துடன் மாற்றுவதற்கு
மேலும் தகவலுக்கு, RegExpReplace செயல்பாட்டைப் பார்க்கவும்.
regex மூலம் இடைவெளியை எவ்வாறு அகற்றுவது - எடுத்துக்காட்டுகள்
உடன் RegExpReplace செயல்பாடு உங்கள் பணிப்புத்தகத்தில் சேர்க்கப்பட்டுள்ளது, ஒரு நேரத்தில் வெவ்வேறு காட்சிகளைச் சமாளிப்போம்.
regex ஐப் பயன்படுத்தி அனைத்து இடைவெளிகளையும் அகற்றவும்
ஒரு சரத்தில் உள்ள அனைத்து இடைவெளிகளையும் அகற்ற, நீங்கள் ஏதேனும் இடைவெளி எழுத்துகளைத் தேடினால் போதும். ஒரு ஸ்பேஸ், ஒரு டேப், ஒரு கேரேஜ் ரிட்டர்ன் மற்றும் ஒரு லைன் ஃபீட் மற்றும் அவற்றை வெற்று சரம் ("") கொண்டு மாற்றவும்.
முறை : \s+
மாற்று : ""
மூல சரம் A5 இல் இருப்பதாகக் கருதினால், B5 இல் உள்ள சூத்திரம்:
=RegExpReplace(A5, "\s+", "")
உங்கள் வடிவங்களை நிர்வகிப்பதை எளிதாக்க , நீங்கள் முன் வரையறுக்கப்பட்ட கலத்தில் ரீஜெக்ஸை உள்ளீடு செய்து $A$2 போன்ற முழுமையான குறிப்பைப் பயன்படுத்தி சூத்திரத்திற்கு வழங்கலாம், எனவே நெடுவரிசையில் சூத்திரத்தை நகலெடுக்கும்போது செல் முகவரி மாறாமல் இருக்கும்.
=RegExpReplace(A5, $A$2, "")
ஒன்றுக்கும் மேற்பட்ட இடைவெளிகளை அகற்றவும்
கூடுதல் இடைவெளி (அதாவது அதிக தா n ஒரு தொடர்ச்சியான இடைவெளிகள்), அதே regex \s+ ஐப் பயன்படுத்தவும், ஆனால் கண்டுபிடிக்கப்பட்ட பொருத்தங்களை ஒற்றை இடைவெளி எழுத்துடன் மாற்றவும்.
முறை : \s+
மாற்று : " "
=RegExpReplace(A5, "\s+", " ")
இந்த சூத்திரம் ஒரு இடைவெளி எழுத்தை இடையில் மட்டும் வைத்திருக்காது என்பதை கவனத்தில் கொள்ளவும்தரவுத்தொகுப்புக்குக் கீழே, பல வரிகளை அப்படியே வைத்துக்கொண்டு, அனைத்து முன்னணி/பின்னங்கும் இடைவெளிகளையும், இடைவெளிகளுக்கு இடையே ஒன்றைத் தவிர அனைத்தையும் ஒழுங்கமைக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். பணியை நிறைவேற்ற, உங்களுக்கு இரண்டு வெவ்வேறு RegExpReplace செயல்பாடுகள் தேவைப்படும்.
முதல் செயல்பாடு பல இடைவெளிகளை ஒரு ஸ்பேஸ் எழுத்துடன் மாற்றுகிறது.
=RegExpReplace(A5, " +", " ")
மற்றொன்று இடைவெளிகளை நீக்குகிறது. ஒரு வரியின் ஆரம்பம் மற்றும் முடிவில் இருந்து:
=RegExpReplace(A5, "^ +| +$", "")
இரண்டு செயல்பாடுகளையும் ஒன்றோடொன்று இணைக்கவும்:
=RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")
மேலும் நீங்கள் ஒரு பெறுவீர்கள் சரியான முடிவு:
ஒரு எழுத்துடன் பல இடைவெளிகளை மாற்றுவதற்கு Regex
நீங்கள் ஒரு சரத்திலிருந்து எல்லா இடைவெளிகளையும் அகற்றி, ஒவ்வொரு குழுவின் தொடர்ச்சியான இடைவெளிகளையும் மாற்ற விரும்பினால் ஒரு குறிப்பிட்ட எழுத்துடன், நீங்கள் செய்ய வேண்டியது இதுதான்:
முதலில், முன்னணி மற்றும் பின்தங்கிய இடைவெளிகளை ஒழுங்கமைக்க இந்த ரெஜெக்ஸைப் பயன்படுத்தவும்:
=RegExpReplace(A8, "^[\s]+|[\s]+$", "")
பின், மேலே உள்ள செயல்பாட்டைச் செய்யவும் நீங்கள் குறிப்பிடும் எழுத்துடன் ஒன்று அல்லது அதற்கு மேற்பட்ட தொடர்ச்சியான இடைவெளிகளை மாற்றும் மற்றொரு RegExpReplace இன் text வாதத்திற்கு, எ.கா. ஒரு ஹைபன்:
வடிவம் : \s+
மாற்று : -
மூல சரம் A8 இல் இருப்பதாகக் கருதினால், சூத்திரம் இந்த வடிவத்தை எடுக்கும்:
=RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")
அல்லது ஸ்கிரீன்ஷாட்டில் காட்டப்பட்டுள்ளபடி தனித்தனி கலங்களில் வடிவங்களையும் மாற்றீடுகளையும் உள்ளிடலாம்:
Regex வெற்று வரிகளை அகற்ற
ஒரு கலத்தில் பல வரிகளைக் கொண்ட பயனர்கள் அடிக்கடி கேட்கும் கேள்வி: "எனது கலங்களில் நிறைய வெற்று கோடுகள் உள்ளன. பெற ஏதேனும் வழி இருக்கிறதா?ஒவ்வொரு கலத்தின் வழியாகவும் ஒவ்வொரு வரியையும் கைமுறையாக நீக்குவதைத் தவிர மற்றவற்றை அகற்றவும்?" பதில்: இது எளிதானது!
தற்போதைய வரியின் தொடக்கத்திலிருந்து ^ வரை ஒரு எழுத்தும் இல்லாத வெற்று வரிகளை பொருத்துவதற்கு அடுத்த வரி \n, regex:
வடிவம் : ^\n
உங்கள் பார்வைக்கு வெற்று கோடுகளில் இடைவெளிகள் அல்லது தாவல்கள் இருந்தால், இந்த வழக்கமான வெளிப்பாட்டைப் பயன்படுத்தவும்:
வடிவம் : ^[\t ]*\n
இந்த சூத்திரத்தைப் பயன்படுத்தி ரீஜெக்ஸை வெற்று சரத்துடன் மாற்றினால் போதும், அனைத்து வெற்று வரிகளும் ஒரே நேரத்தில் மறைந்துவிடும்!
=RegExpReplace(A5, $A$2, "")
RegEx கருவிகள் மூலம் இடைவெளிகளை அகற்றுதல்
மேலே உள்ள உதாரணங்கள், ரீஜெக்ஸால் வழங்கப்பட்ட அற்புதமான சாத்தியக்கூறுகளின் ஒரு சிறிய பகுதியை மட்டுமே நிரூபித்துள்ளன. துரதிர்ஷ்டவசமாக, அனைத்தும் இல்லை கிளாசிக் ரெகுலர் எக்ஸ்ப்ரெஷன்களின் அம்சங்கள் VBA இல் கிடைக்கின்றன.
அதிர்ஷ்டவசமாக, எங்கள் அல்டிமேட் சூட்டில் உள்ள RegEx கருவிகள் மைக்ரோசாப்டின் .NET RegEx இன்ஜின் மூலம் செயலாக்கப்படுவதால், இந்த வரம்புகள் இல்லாமல் உள்ளன. VBA RegExp. Belo ஆல் ஆதரிக்கப்படவில்லை இதுபோன்ற வழக்கமான வெளிப்பாட்டின் உதாரணத்தை நீங்கள் காணலாம்.
எண்களுக்கு இடையே உள்ள இடைவெளியை அகற்ற ரீஜெக்ஸ்
எண்ணெழுத்து சரத்தில், எண்களுக்கு இடையே உள்ள இடைவெளிகளை மட்டும் நீக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம், எனவே இது போன்ற ஒரு சரம் "A 1 2 B" ஆனது "A 12 B" ஆகிறது.
எந்த இரண்டு இலக்கங்களுக்கிடையில் உள்ள இடைவெளியைப் பொருத்த, நீங்கள் பின்வரும் தோற்றத்தைப் பயன்படுத்தலாம்:
முறை : (?<=\d)\s+(?=\d)
சூத்திர அடிப்படையில் உருவாக்கமேலே உள்ள ரீஜெக்ஸில், செய்ய இரண்டு எளிய படிகள் உள்ளன:
- Ablebits Data தாவலில், Text குழுவில், Regex என்பதைக் கிளிக் செய்யவும். கருவிகள் .
- Regex Tools பலகத்தில், மூலத் தரவைத் தேர்ந்தெடுத்து, உங்கள் regexஐ உள்ளிட்டு, நீக்கு என்பதைத் தேர்ந்தெடுக்கவும். விருப்பத்தை, மற்றும் நீக்கு ஐ அழுத்தவும்.
முடிவுகளை சூத்திரங்களாகப் பெற, மதிப்புகள் அல்ல, சூத்திரமாகச் செருகு தேர்வுப்பெட்டியில் ஒரு டிக் வைக்க நினைவில் கொள்ளுங்கள்.
சிறிது நேரத்தில், அசல் தரவின் வலதுபுறத்தில் புதிய நெடுவரிசையில் AblebitsRegexRemove செயல்பாடு செருகப்பட்டிருப்பதைக் காண்பீர்கள்.
மாற்றாக, நீங்கள் சில கலத்தில் regex ஐ உள்ளிடலாம். , A5 எனக் கூறி, செயல்பாட்டைச் செருகு உரையாடல் பெட்டியைப் பயன்படுத்தி ஒரு கலத்தில் சூத்திரத்தை நேரடியாகச் செருகவும், இங்கு AblebitsRegexRemove AblebitsUDFs என்பதன் கீழ் வகைப்படுத்தப்பட்டுள்ளது.
இந்தச் செயல்பாடு சரங்களை அகற்றுவதற்காக பிரத்யேகமாக வடிவமைக்கப்பட்டுள்ளதால், இதற்கு இரண்டு வாதங்கள் மட்டுமே தேவை - உள்ளீடு சரம் மற்றும் ரீஜெக்ஸ் வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி எக்செல். படித்ததற்கு நன்றி, அடுத்த வாரம் எங்கள் வலைப்பதிவில் உங்களைப் பார்ப்பதற்கு ஆவலுடன் காத்திருக்கிறேன்!
கிடைக்கும் பதிவிறக்கங்கள்
regex உடன் இடைவெளியை அகற்று - உதாரணங்கள் (.xlsm கோப்பு)
Ultimate Suite - சோதனை பதிப்பு (.exe கோப்பு)
வார்த்தைகள் ஆனால் ஒரு சரத்தின் தொடக்கத்திலும் முடிவிலும், இது நன்றாக இல்லை. முன்னணி மற்றும் பின்தங்கிய இடைவெளியில் இருந்து விடுபட, மேலே உள்ள ஃபார்முலாவை மற்றொரு RegExpReplace செயல்பாட்டிற்குள் இணைக்கவும், இது ஆரம்பம் மற்றும் முடிவிலிருந்து இடைவெளிகளை நீக்குகிறது: =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")
Regex to முன்னணி மற்றும் பின்தங்கிய இடைவெளியை அகற்று
ஒரு வரியின் தொடக்கத்திலோ அல்லது முடிவிலோ இடைவெளியைத் தேட, தொடக்க ^ மற்றும் முடிவு $ ஆங்கர்களைப் பயன்படுத்தவும்.
முன்னணி இடைவெளி:
முறை : ^[\s]+
டிரெயிலிங் இடைவெளி:
முறை : [\s ]+$
முன்னணி மற்றும் பிற்ந்து இடைவெளி:
முறை : ^[\s]+