ഉള്ളടക്കം
Excel-ൽ ടെക്സ്റ്റുമായി പ്രവർത്തിക്കുമ്പോൾ ഏറ്റവും കൂടുതൽ സമയം ചെലവഴിക്കുന്നതും നിരാശാജനകവുമായ ഒരു ജോലിയാണ് പാഴ്സിംഗ് - ആൽഫാന്യൂമെറിക് "കഞ്ഞി" ഘടകങ്ങളായി പാഴ്സ് ചെയ്യുകയും അതിൽ നിന്ന് നമുക്ക് ആവശ്യമായ ശകലങ്ങൾ വേർതിരിച്ചെടുക്കുകയും ചെയ്യുന്നു. ഉദാഹരണത്തിന്:
- വിലാസത്തിൽ നിന്ന് പിൻ കോഡ് എക്സ്ട്രാക്റ്റുചെയ്യുന്നു (പിൻ കോഡ് എല്ലായ്പ്പോഴും തുടക്കത്തിലാണെങ്കിൽ അത് നല്ലതാണ്, പക്ഷേ അങ്ങനെയല്ലെങ്കിൽ?)
- ബാങ്ക് സ്റ്റേറ്റ്മെന്റിലെ പേയ്മെന്റിന്റെ വിവരണത്തിൽ നിന്ന് ഇൻവോയ്സിന്റെ നമ്പറും തീയതിയും കണ്ടെത്തുന്നു
- കൌണ്ടർപാർട്ടികളുടെ ലിസ്റ്റിലെ കമ്പനികളുടെ വിശിഷ്ട വിവരണങ്ങളിൽ നിന്ന് TIN വേർതിരിച്ചെടുക്കൽ
- വിവരണത്തിൽ ഒരു കാർ നമ്പറോ ലേഖന നമ്പറോ തിരയുക.
സാധാരണയായി അത്തരം സന്ദർഭങ്ങളിൽ, അരമണിക്കൂറോളം വാചകം സ്വമേധയാ എടുത്തതിന് ശേഷം, ഈ പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിനുള്ള ചിന്തകൾ എങ്ങനെയെങ്കിലും മനസ്സിൽ വരാൻ തുടങ്ങും (പ്രത്യേകിച്ച് ധാരാളം ഡാറ്റ ഉണ്ടെങ്കിൽ). നിരവധി പരിഹാരങ്ങളുണ്ട് കൂടാതെ വ്യത്യസ്ത അളവിലുള്ള സങ്കീർണ്ണതയും കാര്യക്ഷമതയും ഉണ്ട്:
- ഉപയോഗം ബിൽറ്റ്-ഇൻ എക്സൽ ടെക്സ്റ്റ് ഫംഗ്ഷനുകൾ സെർച്ച്-കട്ട്-ഗ്ലൂ ടെക്സ്റ്റ് ചെയ്യാൻ: LEVSIMV (ഇടത്തെ), ശരി (അവകാശം), PSTR (മധ്യം), STSEPIT (കോൺകാറ്റനേറ്റ്) അതിന്റെ അനലോഗുകളും, സംയോജിപ്പിക്കുക (JOINTEXT), കൃത്യം (കൃത്യം) മുതലായവ. ടെക്സ്റ്റിൽ വ്യക്തമായ ലോജിക് ഉണ്ടെങ്കിൽ ഈ രീതി നല്ലതാണ് (ഉദാഹരണത്തിന്, സൂചിക എല്ലായ്പ്പോഴും വിലാസത്തിന്റെ തുടക്കത്തിലാണ്). അല്ലാത്തപക്ഷം, സൂത്രവാക്യങ്ങൾ കൂടുതൽ സങ്കീർണ്ണമാവുകയും, ചിലപ്പോൾ, വലിയ ടേബിളുകളിൽ വളരെ മന്ദഗതിയിലാകുന്ന അറേ ഫോർമുലകളിലേക്ക് പോലും വരുന്നു.
- ഉപയോഗിക്കുന്നു ടെക്സ്റ്റ് സമാനത ഓപ്പറേറ്റർ പോലെ ഒരു ഇഷ്ടാനുസൃത മാക്രോ ഫംഗ്ഷനിൽ പൊതിഞ്ഞ വിഷ്വൽ ബേസിക്കിൽ നിന്ന്. വൈൽഡ്കാർഡ് പ്രതീകങ്ങൾ (*, #,?, മുതലായവ) ഉപയോഗിച്ച് കൂടുതൽ വഴക്കമുള്ള തിരയൽ നടപ്പിലാക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.
മുകളിൽ പറഞ്ഞവ കൂടാതെ, പ്രൊഫഷണൽ പ്രോഗ്രാമർമാർ, വെബ് ഡെവലപ്പർമാർ, മറ്റ് ടെക്കികൾ എന്നിവരുടെ ഇടുങ്ങിയ സർക്കിളുകളിൽ വളരെ അറിയപ്പെടുന്ന മറ്റൊരു സമീപനമുണ്ട് - ഇതാണ് പതിവ് പദപ്രയോഗങ്ങൾ (റെഗുലർ എക്സ്പ്രഷനുകൾ = RegExp = "regexps" = "Regulars"). ലളിതമായി പറഞ്ഞാൽ, RegExp എന്നത് ടെക്സ്റ്റിൽ ആവശ്യമായ സബ്സ്ട്രിംഗുകൾ തിരയുന്നതിനോ അവ എക്സ്ട്രാക്റ്റുചെയ്യുന്നതിനോ മറ്റ് ടെക്സ്റ്റ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നതിനോ പ്രത്യേക പ്രതീകങ്ങളും നിയമങ്ങളും ഉപയോഗിക്കുന്ന ഒരു ഭാഷയാണ്.. റെഗുലർ എക്സ്പ്രഷനുകൾ വളരെ ശക്തവും മനോഹരവുമായ ഒരു ഉപകരണമാണ്, അത് ടെക്സ്റ്റ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിനുള്ള മറ്റെല്ലാ വഴികളെയും മാഗ്നിറ്റ്യൂഡ് ക്രമത്തിൽ മറികടക്കുന്നു. നിരവധി പ്രോഗ്രാമിംഗ് ഭാഷകളും (C#, PHP, Perl, JavaScript...) ടെക്സ്റ്റ് എഡിറ്ററുകളും (Word, Notepad++...) റെഗുലർ എക്സ്പ്രഷനുകളെ പിന്തുണയ്ക്കുന്നു.
Microsoft Excel-ന് നിർഭാഗ്യവശാൽ RegExp പിന്തുണയില്ല, എന്നാൽ ഇത് VBA ഉപയോഗിച്ച് എളുപ്പത്തിൽ പരിഹരിക്കാവുന്നതാണ്. ടാബിൽ നിന്ന് വിഷ്വൽ ബേസിക് എഡിറ്റർ തുറക്കുക ഡെവലപ്പർ (ഡെവലപ്പർ) അല്ലെങ്കിൽ കീബോർഡ് കുറുക്കുവഴി ആൾട്ട്+F11. തുടർന്ന് മെനുവിലൂടെ പുതിയ മൊഡ്യൂൾ ചേർക്കുക തിരുകുക - മൊഡ്യൂൾ ഇനിപ്പറയുന്ന മാക്രോ ഫംഗ്ഷന്റെ വാചകം അവിടെ പകർത്തുക:
പബ്ലിക് ഫംഗ്ഷൻ RegExpExtract(ടെക്സ്റ്റ് സ്ട്രിംഗായി, പാറ്റേൺ സ്ട്രിംഗായി, ഓപ്ഷണൽ ഇനം പൂർണ്ണസംഖ്യയായി = 1) സ്ട്രിംഗ് ഓൺ പിശകായി GoTo ErrHandl Set regex = CreateObject("VBScript.RegExp") regex.Pattern = പാറ്റേൺ = True.G.T.Glogex. (ടെക്സ്റ്റ്) തുടർന്ന് പൊരുത്തം സജ്ജമാക്കുക = regex.Execute(ടെക്സ്റ്റ്) RegExpExtract = matches.Item(ഇനം - 1) ErrHandl ആണെങ്കിൽ എക്സിറ്റ് ഫംഗ്ഷൻ അവസാനിക്കുക: RegExpExtract = CVErr(xlErrValue) എൻഡ് ഫംഗ്ഷൻ
വിഷ്വൽ ബേസിക് എഡിറ്റർ അടച്ച് ഞങ്ങളുടെ പുതിയ ഫീച്ചർ പരീക്ഷിക്കുന്നതിനായി Excel-ലേക്ക് മടങ്ങാം. അതിന്റെ വാക്യഘടന ഇപ്രകാരമാണ്:
=RegExpExtract( Txt ; പാറ്റേൺ ; ഇനം)
എവിടെ
- txt ലുള്ള - ഞങ്ങൾ പരിശോധിക്കുന്ന ടെക്സ്റ്റ് ഉള്ള ഒരു സെൽ, അതിൽ നിന്ന് നമുക്ക് ആവശ്യമായ സബ്സ്ട്രിംഗ് എക്സ്ട്രാക്റ്റ് ചെയ്യാൻ ആഗ്രഹിക്കുന്നു
- പാറ്റേൺ - സബ്സ്ട്രിംഗ് തിരയലിനായി മാസ്ക് (പാറ്റേൺ).
- ഇനം - എക്സ്ട്രാക്റ്റുചെയ്യേണ്ട സബ്സ്ട്രിംഗിന്റെ സീക്വൻസ് നമ്പർ, അവയിൽ പലതും ഉണ്ടെങ്കിൽ (വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ആദ്യ സംഭവം പ്രദർശിപ്പിക്കും)
ഇവിടെ ഏറ്റവും രസകരമായ കാര്യം, തീർച്ചയായും, പാറ്റേൺ ആണ് - RegExp-ന്റെ "ഭാഷയിൽ" പ്രത്യേക പ്രതീകങ്ങളുടെ ഒരു ടെംപ്ലേറ്റ് സ്ട്രിംഗ്, അത് കൃത്യമായി എവിടെയാണ് നമ്മൾ കണ്ടെത്തേണ്ടത് എന്ന് വ്യക്തമാക്കുന്നു. നിങ്ങൾ ആരംഭിക്കുന്നതിനുള്ള ഏറ്റവും അടിസ്ഥാനപരമായവ ഇതാ:
മാതൃക | വിവരണം |
. | ഏറ്റവും ലളിതമായത് ഒരു ഡോട്ട് ആണ്. ഇത് നിർദ്ദിഷ്ട സ്ഥാനത്ത് പാറ്റേണിലെ ഏതെങ്കിലും പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു. |
s | ഒരു സ്പെയ്സ് പോലെ കാണപ്പെടുന്ന ഏത് പ്രതീകവും (സ്പേസ്, ടാബ് അല്ലെങ്കിൽ ലൈൻ ബ്രേക്ക്). |
S | മുമ്പത്തെ പാറ്റേണിന്റെ ഒരു ആന്റി-വേരിയന്റ്, അതായത് ഏതെങ്കിലും നോൺ-വൈറ്റ്സ്പേസ് പ്രതീകം. |
d | ഏതെങ്കിലും നമ്പർ |
D | മുമ്പത്തേതിന്റെ ഒരു ആന്റി-വേരിയന്റ്, അതായത് ഏതെങ്കിലും NOT അക്കങ്ങൾ |
w | ഏതെങ്കിലും ലാറ്റിൻ പ്രതീകം (AZ), അക്കം അല്ലെങ്കിൽ അടിവര |
W | മുമ്പത്തേതിന്റെ ഒരു ആന്റി-വേരിയന്റ്, അതായത് ലാറ്റിൻ അല്ല, ഒരു സംഖ്യയല്ല, അടിവരയല്ല. |
[പ്രതീകങ്ങൾ] | സ്ക്വയർ ബ്രാക്കറ്റുകളിൽ, ടെക്സ്റ്റിലെ നിർദ്ദിഷ്ട സ്ഥാനത്ത് അനുവദിച്ചിരിക്കുന്ന ഒന്നോ അതിലധികമോ പ്രതീകങ്ങൾ നിങ്ങൾക്ക് വ്യക്തമാക്കാൻ കഴിയും. ഉദാഹരണത്തിന് കല ഏതെങ്കിലും വാക്കുകളുമായി പൊരുത്തപ്പെടും: മേശ or കസേര. നിങ്ങൾക്ക് പ്രതീകങ്ങൾ എണ്ണാനും കഴിയില്ല, പക്ഷേ അവയെ ഒരു ഹൈഫൻ കൊണ്ട് വേർതിരിച്ച ഒരു ശ്രേണിയായി സജ്ജമാക്കുക, അതായത് പകരം [ABDCDEF] എഴുതുക [AF]. അല്ലെങ്കിൽ പകരം [4567] പരിചയപ്പെടുത്തുക [-4 7]. ഉദാഹരണത്തിന്, എല്ലാ സിറിലിക് പ്രതീകങ്ങളും നിർദ്ദേശിക്കാൻ, നിങ്ങൾക്ക് ടെംപ്ലേറ്റ് ഉപയോഗിക്കാം [a-yaA-YayoYo]. |
[^പ്രതീകങ്ങൾ] | തുറന്ന ചതുര ബ്രാക്കറ്റിന് ശേഷം "ലിഡ്" എന്ന ചിഹ്നം ചേർക്കുക ^, അപ്പോൾ സെറ്റ് വിപരീത അർത്ഥം നേടും - വാചകത്തിലെ നിർദ്ദിഷ്ട സ്ഥാനത്ത്, ലിസ്റ്റുചെയ്തവ ഒഴികെ എല്ലാ പ്രതീകങ്ങളും അനുവദിക്കും. അതെ, ടെംപ്ലേറ്റ് [^ЖМ]ut കണ്ടുപിടിക്കും പാത or ലഹരി വസ്തു or മറക്കുകപക്ഷേ, അല്ല ഭീതിദമാണ് or മുത്, ഉദാ. |
| | ബൂളിയൻ ഓപ്പറേറ്റർ OR (അഥവാ) ഏതെങ്കിലും നിർദ്ദിഷ്ട മാനദണ്ഡങ്ങൾ പരിശോധിക്കുന്നതിന്. ഉദാഹരണത്തിന് (നിന്ന്വ്യാഴംപോലും|ഇൻവോയ്സ്) ഏതെങ്കിലും നിർദ്ദിഷ്ട പദങ്ങൾക്കായി വാചകം തിരയും. സാധാരണയായി, ഒരു കൂട്ടം ഓപ്ഷനുകൾ പരാൻതീസിസിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. |
^ | വരിയുടെ തുടക്കം |
$ | വരിയുടെ അവസാനം |
b | വാക്കിന്റെ അവസാനം |
ഞങ്ങൾ ഒരു നിശ്ചിത എണ്ണം പ്രതീകങ്ങൾക്കായി തിരയുകയാണെങ്കിൽ, ഉദാഹരണത്തിന്, ആറ് അക്ക തപാൽ കോഡ് അല്ലെങ്കിൽ എല്ലാ മൂന്നക്ഷര ഉൽപ്പന്ന കോഡുകളും, അപ്പോൾ ഞങ്ങൾ രക്ഷാപ്രവർത്തനത്തിലേക്ക് വരുന്നു ക്വാണ്ടിഫയറുകൾ or ക്വാണ്ടിഫയറുകൾ തിരയേണ്ട പ്രതീകങ്ങളുടെ എണ്ണം വ്യക്തമാക്കുന്ന പ്രത്യേക പദപ്രയോഗങ്ങളാണ്. അതിന് മുമ്പ് വരുന്ന പ്രതീകത്തിന് ക്വാണ്ടിഫയറുകൾ പ്രയോഗിക്കുന്നു:
ക്വാണ്ടർ | വിവരണം |
? | പൂജ്യം അല്ലെങ്കിൽ ഒരു സംഭവം. ഉദാഹരണത്തിന് .? ഏതെങ്കിലും ഒരു കഥാപാത്രത്തെ അല്ലെങ്കിൽ അതിന്റെ അഭാവത്തെ അർത്ഥമാക്കും. |
+ | ഒന്നോ അതിലധികമോ എൻട്രികൾ. ഉദാഹരണത്തിന് d+ അക്കങ്ങളുടെ എത്രയോ എണ്ണം (അതായത് 0-നും അനന്തതയ്ക്കും ഇടയിലുള്ള ഏതെങ്കിലും സംഖ്യ) എന്നാണ് അർത്ഥമാക്കുന്നത്. |
* | പൂജ്യമോ അതിലധികമോ സംഭവങ്ങൾ, അതായത് ഏതെങ്കിലും അളവ്. അങ്ങനെ s* സ്പെയ്സുകളുടെ എണ്ണം അല്ലെങ്കിൽ സ്പെയ്സുകൾ ഇല്ല എന്നാണ് അർത്ഥമാക്കുന്നത്. |
{അക്കം} or {നമ്പർ 1,നമ്പർ 2} | നിങ്ങൾക്ക് കൃത്യമായി നിർവചിക്കപ്പെട്ട സംഭവങ്ങളുടെ എണ്ണം വ്യക്തമാക്കണമെങ്കിൽ, അത് ചുരുണ്ട ബ്രേസുകളിൽ വ്യക്തമാക്കുന്നു. ഉദാഹരണത്തിന് d{6} കർശനമായി ആറ് അക്കങ്ങളും പാറ്റേണും അർത്ഥമാക്കുന്നു സെ{2,5} - രണ്ട് മുതൽ അഞ്ച് വരെ ഇടങ്ങൾ |
ഇപ്പോൾ നമുക്ക് ഏറ്റവും രസകരമായ ഭാഗത്തേക്ക് പോകാം - സൃഷ്ടിച്ച ഫംഗ്ഷന്റെ പ്രയോഗത്തിന്റെ വിശകലനവും ജീവിതത്തിൽ നിന്നുള്ള പ്രായോഗിക ഉദാഹരണങ്ങളിൽ പാറ്റേണുകളെക്കുറിച്ച് ഞങ്ങൾ പഠിച്ചതും.
വാചകത്തിൽ നിന്ന് അക്കങ്ങൾ വേർതിരിച്ചെടുക്കുന്നു
ആരംഭിക്കുന്നതിന്, നമുക്ക് ഒരു ലളിതമായ കേസ് വിശകലനം ചെയ്യാം - നിങ്ങൾ ആൽഫാന്യൂമെറിക് കഞ്ഞിയിൽ നിന്ന് ആദ്യ നമ്പർ എക്സ്ട്രാക്റ്റുചെയ്യേണ്ടതുണ്ട്, ഉദാഹരണത്തിന്, വില പട്ടികയിൽ നിന്ന് തടസ്സമില്ലാത്ത വൈദ്യുതി വിതരണത്തിന്റെ ശക്തി:
പതിവ് പദപ്രയോഗത്തിന് പിന്നിലെ യുക്തി ലളിതമാണ്: d ഏതെങ്കിലും അക്കവും ക്വാണ്ടിഫയറും അർത്ഥമാക്കുന്നു + അവരുടെ എണ്ണം ഒന്നോ അതിലധികമോ ആയിരിക്കണം എന്ന് പറയുന്നു. എക്സ്ട്രാക്റ്റുചെയ്ത പ്രതീകങ്ങളെ നമ്പർ-ആസ്-ടെക്സ്റ്റിൽ നിന്ന് ഒരു പൂർണ്ണ സംഖ്യയിലേക്ക് പരിവർത്തനം ചെയ്യാൻ ഫംഗ്ഷന്റെ മുന്നിലുള്ള ഇരട്ട മൈനസ് ആവശ്യമാണ്.
പോസ്റ്റ് കോഡ്
ഒറ്റനോട്ടത്തിൽ, എല്ലാം ഇവിടെ ലളിതമാണ് - ഞങ്ങൾ ഒരു വരിയിൽ കൃത്യമായി ആറ് അക്കങ്ങൾക്കായി തിരയുന്നു. ഞങ്ങൾ ഒരു പ്രത്യേക പ്രതീകം ഉപയോഗിക്കുന്നു d അക്കത്തിനും ക്വാണ്ടിഫയറിനും 6 {} പ്രതീകങ്ങളുടെ എണ്ണത്തിന്:
എന്നിരുന്നാലും, വരിയിലെ സൂചികയുടെ ഇടതുവശത്ത്, ഒരു വരിയിൽ മറ്റൊരു വലിയ കൂട്ടം നമ്പറുകൾ ഉണ്ടാകുമ്പോൾ ഒരു സാഹചര്യം സാധ്യമാണ് (ഫോൺ നമ്പർ, ടിൻ, ബാങ്ക് അക്കൗണ്ട് മുതലായവ) തുടർന്ന് ഞങ്ങളുടെ പതിവ് സീസൺ ആദ്യത്തെ 6 പുറത്തെടുക്കും. അതിൽ നിന്നുള്ള അക്കങ്ങൾ, അതായത് ശരിയായി പ്രവർത്തിക്കില്ല:
ഇത് സംഭവിക്കുന്നത് തടയാൻ, ഞങ്ങളുടെ പതിവ് പദപ്രയോഗത്തിന്റെ അരികുകളിൽ ഒരു മോഡിഫയർ ചേർക്കേണ്ടതുണ്ട് b ഒരു വാക്കിന്റെ അവസാനത്തെ സൂചിപ്പിക്കുന്നു. നമുക്ക് ആവശ്യമുള്ള ശകലം (സൂചിക) ഒരു പ്രത്യേക പദമായിരിക്കണമെന്നും മറ്റൊരു ശകലത്തിന്റെ (ഫോൺ നമ്പർ) ഭാഗമല്ലെന്നും ഇത് Excel-നെ വ്യക്തമാക്കുന്നു:
ഫോൺ
ടെക്സ്റ്റിൽ ഒരു ഫോൺ നമ്പർ കണ്ടെത്തുന്നതിലെ പ്രശ്നം, ഹൈഫനുകളോടെയും അല്ലാതെയും, സ്പെയ്സുകളിലൂടെ, ബ്രാക്കറ്റിൽ ഒരു റീജിയൻ കോഡ് ഉള്ളതോ അല്ലാതെയോ, നമ്പറുകൾ എഴുതുന്നതിന് നിരവധി ഓപ്ഷനുകൾ ഉണ്ട് എന്നതാണ്. അതിനാൽ, എന്റെ അഭിപ്രായത്തിൽ, ഇത് എളുപ്പമാണ് ആദ്യം നിരവധി നെസ്റ്റഡ് ഫംഗ്ഷനുകൾ ഉപയോഗിച്ച് ഉറവിട വാചകത്തിൽ നിന്ന് ഈ പ്രതീകങ്ങളെല്ലാം വൃത്തിയാക്കുക സബ്സിറ്റ്യൂട്ട് (പകരം)അങ്ങനെ അത് ഒരൊറ്റ മൊത്തത്തിൽ ഒന്നിച്ചു ചേരുന്നു, തുടർന്ന് ഒരു പ്രാകൃത പതിവ് d{11} ഒരു വരിയിൽ 11 അക്കങ്ങൾ പുറത്തെടുക്കുക:
ഐ.ടി.എൻ
ഇവിടെ ഇത് കുറച്ചുകൂടി സങ്കീർണ്ണമാണ്, കാരണം TIN (നമ്മുടെ രാജ്യത്ത്) 10-അക്ക (നിയമപരമായ സ്ഥാപനങ്ങൾക്ക്) അല്ലെങ്കിൽ 12-അക്ക (വ്യക്തികൾക്ക്) ആകാം. നിങ്ങൾ പ്രത്യേകിച്ച് തെറ്റ് കണ്ടെത്തിയില്ലെങ്കിൽ, സ്ഥിരമായി സംതൃപ്തരാകുന്നത് തികച്ചും സാദ്ധ്യമാണ് d{10,12}, പക്ഷേ, കർശനമായി പറഞ്ഞാൽ, ഇത് 10 മുതൽ 12 വരെയുള്ള എല്ലാ അക്കങ്ങളും പുറത്തെടുക്കും, അതായത് 11 അക്കങ്ങൾ തെറ്റായി നൽകി. ഒരു ലോജിക്കൽ അല്ലെങ്കിൽ ഓപ്പറേറ്റർ ബന്ധിപ്പിച്ചിരിക്കുന്ന രണ്ട് പാറ്റേണുകൾ ഉപയോഗിക്കുന്നത് കൂടുതൽ ശരിയായിരിക്കും | (ലംബ ബാർ):
അന്വേഷണത്തിൽ ഞങ്ങൾ ആദ്യം 12-ബിറ്റ് നമ്പറുകൾക്കായി തിരയുന്നു, തുടർന്ന് 10-ബിറ്റ് നമ്പറുകൾക്കായി മാത്രം. നമ്മുടെ പതിവ് പദപ്രയോഗം മറിച്ചാണ് എഴുതുന്നതെങ്കിൽ, അത് എല്ലാവർക്കുമായി, ദൈർഘ്യമേറിയ 12-ബിറ്റ് ടിന്നുകൾ പോലും, ആദ്യത്തെ 10 പ്രതീകങ്ങൾ മാത്രം പുറത്തെടുക്കും. അതായത്, ആദ്യ വ്യവസ്ഥ പ്രവർത്തനക്ഷമമാക്കിയ ശേഷം, കൂടുതൽ സ്ഥിരീകരണം ഇനി നടക്കില്ല:
ഇതാണ് ഓപ്പറേറ്റർ തമ്മിലുള്ള അടിസ്ഥാന വ്യത്യാസം | ഒരു സാധാരണ എക്സൽ ലോജിക് ഫംഗ്ഷനിൽ നിന്ന് OR (അഥവാ), ആർഗ്യുമെന്റുകൾ പുനഃക്രമീകരിക്കുന്നത് ഫലത്തെ മാറ്റില്ല.
ഉൽപ്പന്ന എസ്കെയു
പല കമ്പനികളിലും, ചരക്കുകൾക്കും സേവനങ്ങൾക്കും അദ്വിതീയ ഐഡന്റിഫയറുകൾ നൽകിയിട്ടുണ്ട് - ലേഖനങ്ങൾ, SAP കോഡുകൾ, SKU-കൾ മുതലായവ. അവയുടെ നൊട്ടേഷനിൽ യുക്തിയുണ്ടെങ്കിൽ, സാധാരണ പദപ്രയോഗങ്ങൾ ഉപയോഗിച്ച് ഏത് ടെക്സ്റ്റിൽ നിന്നും അവ എളുപ്പത്തിൽ പുറത്തെടുക്കാൻ കഴിയും. ഉദാഹരണത്തിന്, ഞങ്ങളുടെ ലേഖനങ്ങളിൽ എല്ലായ്പ്പോഴും മൂന്ന് വലിയ ഇംഗ്ലീഷ് അക്ഷരങ്ങളും ഒരു ഹൈഫനും തുടർന്നുള്ള മൂന്നക്ക സംഖ്യയും അടങ്ങിയിരിക്കുന്നുവെന്ന് ഞങ്ങൾക്കറിയാമെങ്കിൽ:
ടെംപ്ലേറ്റിന് പിന്നിലെ യുക്തി ലളിതമാണ്. [AZ] - ലാറ്റിൻ അക്ഷരമാലയിലെ ഏതെങ്കിലും വലിയ അക്ഷരങ്ങൾ എന്നാണ് അർത്ഥമാക്കുന്നത്. അടുത്ത ക്വാണ്ടിഫയർ 3 {} അത്തരം മൂന്ന് അക്ഷരങ്ങൾ കൃത്യമായി ഉണ്ടെന്നത് ഞങ്ങൾക്ക് പ്രധാനമാണെന്ന് പറയുന്നു. ഹൈഫന് ശേഷം, ഞങ്ങൾ മൂന്ന് അക്കങ്ങൾക്കായി കാത്തിരിക്കുകയാണ്, അതിനാൽ ഞങ്ങൾ അവസാനം ചേർക്കുന്നു d{3}
പണ തുകകൾ
മുമ്പത്തെ ഖണ്ഡികയ്ക്ക് സമാനമായ രീതിയിൽ, നിങ്ങൾക്ക് സാധനങ്ങളുടെ വിവരണത്തിൽ നിന്ന് വിലകൾ (ചെലവ്, വാറ്റ് ...) പിൻവലിക്കാം. പണമായ തുകകൾ, ഉദാഹരണത്തിന്, ഒരു ഹൈഫൻ ഉപയോഗിച്ച് സൂചിപ്പിക്കുകയാണെങ്കിൽ:
മാതൃക d ക്വാണ്ടിഫയർ ഉപയോഗിച്ച് + ഒരു ഹൈഫൻ വരെയുള്ള ഏതെങ്കിലും സംഖ്യയ്ക്കായി തിരയുന്നു, കൂടാതെ d{2} ശേഷം പെന്നികൾ (രണ്ട് അക്കങ്ങൾ) നോക്കും.
നിങ്ങൾക്ക് എക്സ്ട്രാക്റ്റ് ചെയ്യേണ്ടത് വിലകളല്ല, വാറ്റ് ആണെങ്കിൽ, എക്സ്ട്രാക്റ്റുചെയ്യേണ്ട ഘടകത്തിന്റെ ഓർഡിനൽ നമ്പർ വ്യക്തമാക്കുന്ന ഞങ്ങളുടെ RegExpExtract ഫംഗ്ഷന്റെ മൂന്നാമത്തെ ഓപ്ഷണൽ ആർഗ്യുമെന്റ് നിങ്ങൾക്ക് ഉപയോഗിക്കാം. കൂടാതെ, തീർച്ചയായും, നിങ്ങൾക്ക് ഫംഗ്ഷൻ മാറ്റിസ്ഥാപിക്കാൻ കഴിയും സബ്സിറ്റ്യൂട്ട് (പകരം) ഫലങ്ങളിൽ, സ്റ്റാൻഡേർഡ് ഡെസിമൽ സെപ്പറേറ്ററിലേക്ക് ഹൈഫൻ ചെയ്ത് തുടക്കത്തിൽ ഇരട്ട മൈനസ് ചേർക്കുക, അതുവഴി Excel കണ്ടെത്തിയ VAT ഒരു സാധാരണ സംഖ്യയായി വ്യാഖ്യാനിക്കുന്നു:
കാർ പ്ലേറ്റ് നമ്പറുകൾ
നിങ്ങൾ പ്രത്യേക വാഹനങ്ങൾ, ട്രെയിലറുകൾ, മറ്റ് മോട്ടോർസൈക്കിളുകൾ എന്നിവ എടുക്കുന്നില്ലെങ്കിൽ, സ്റ്റാൻഡേർഡ് കാർ നമ്പർ "അക്ഷരം - മൂന്ന് അക്കങ്ങൾ - രണ്ട് അക്ഷരങ്ങൾ - മേഖല കോഡ്" എന്ന തത്വമനുസരിച്ച് പാഴ്സ് ചെയ്യുന്നു. മാത്രമല്ല, പ്രദേശ കോഡ് 2- അല്ലെങ്കിൽ 3-അക്ക ആകാം, കൂടാതെ ലാറ്റിൻ അക്ഷരമാലയ്ക്ക് സമാനമായവ മാത്രമേ അക്ഷരങ്ങളായി ഉപയോഗിക്കൂ. അതിനാൽ, ഇനിപ്പറയുന്ന പതിവ് പദപ്രയോഗം വാചകത്തിൽ നിന്ന് അക്കങ്ങൾ വേർതിരിച്ചെടുക്കാൻ ഞങ്ങളെ സഹായിക്കും:
കാലം
HH:MM ഫോർമാറ്റിൽ സമയം എക്സ്ട്രാക്റ്റുചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന പതിവ് എക്സ്പ്രഷൻ അനുയോജ്യമാണ്:
കോളൻ ശകലത്തിന് ശേഷം [0-5]ഡി, കണ്ടുപിടിക്കാൻ എളുപ്പമായതിനാൽ, 00-59 ശ്രേണിയിലെ ഏത് സംഖ്യയും സജ്ജമാക്കുന്നു. പരാൻതീസിസിലെ കോളണിന് മുമ്പ്, രണ്ട് പാറ്റേണുകൾ പ്രവർത്തിക്കുന്നു, ഒരു ലോജിക്കൽ OR (പൈപ്പ്):
- [0-1]ഡി - 00-19 ശ്രേണിയിലുള്ള ഏത് സംഖ്യയും
- 2[0-3] - 20-23 ശ്രേണിയിലുള്ള ഏത് സംഖ്യയും
ലഭിച്ച ഫലത്തിലേക്ക്, നിങ്ങൾക്ക് സ്റ്റാൻഡേർഡ് എക്സൽ ഫംഗ്ഷൻ അധികമായി പ്രയോഗിക്കാൻ കഴിയും TIME, (ടീം)പ്രോഗ്രാമിന് മനസ്സിലാക്കാവുന്നതും കൂടുതൽ കണക്കുകൂട്ടലുകൾക്ക് അനുയോജ്യവുമായ ഒരു സമയ ഫോർമാറ്റിലേക്ക് ഇത് പരിവർത്തനം ചെയ്യാൻ.
പാസ്വേഡ് പരിശോധന
കൃത്യതയ്ക്കായി ഉപയോക്താക്കൾ കണ്ടുപിടിച്ച പാസ്വേഡുകളുടെ ലിസ്റ്റ് പരിശോധിക്കേണ്ടതുണ്ടെന്ന് കരുതുക. ഞങ്ങളുടെ നിയമങ്ങൾ അനുസരിച്ച്, പാസ്വേഡുകളിൽ ഇംഗ്ലീഷ് അക്ഷരങ്ങളും (ചെറിയ അല്ലെങ്കിൽ വലിയക്ഷരവും) അക്കങ്ങളും മാത്രമേ അടങ്ങിയിരിക്കാവൂ. സ്പെയ്സുകളും അടിവരകളും മറ്റ് ചിഹ്ന ചിഹ്നങ്ങളും അനുവദനീയമല്ല.
ഇനിപ്പറയുന്ന ലളിതമായ പതിവ് പദപ്രയോഗം ഉപയോഗിച്ച് പരിശോധന സംഘടിപ്പിക്കാം:
വാസ്തവത്തിൽ, അത്തരമൊരു പാറ്റേൺ ഉപയോഗിച്ച് നമുക്ക് തുടക്കത്തിന് ഇടയിൽ (^) ഒപ്പം അവസാനം ($) ഞങ്ങളുടെ വാചകത്തിൽ ചതുര ബ്രാക്കറ്റിൽ നൽകിയിരിക്കുന്ന സെറ്റിൽ നിന്നുള്ള പ്രതീകങ്ങൾ മാത്രമേ ഉണ്ടായിരുന്നുള്ളൂ. നിങ്ങൾക്ക് പാസ്വേഡിന്റെ ദൈർഘ്യം പരിശോധിക്കേണ്ടതുണ്ടെങ്കിൽ (ഉദാഹരണത്തിന്, കുറഞ്ഞത് 6 പ്രതീകങ്ങളെങ്കിലും), തുടർന്ന് ക്വാണ്ടിഫയർ + രൂപത്തിൽ "ആറോ അതിലധികമോ" ഇടവേള ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാം {6,}:
വിലാസത്തിൽ നിന്ന് നഗരം
നമുക്ക് നഗരത്തെ വിലാസ ബാറിൽ നിന്ന് പിൻവലിക്കണമെന്ന് പറയാം. സാധാരണ പ്രോഗ്രാം സഹായിക്കും, "g" ൽ നിന്ന് ടെക്സ്റ്റ് എക്സ്ട്രാക്റ്റ് ചെയ്യും. അടുത്ത കോമയിലേക്ക്:
നമുക്ക് ഈ പാറ്റേൺ കൂടുതൽ വിശദമായി പരിശോധിക്കാം.
മുകളിലുള്ള വാചകം നിങ്ങൾ വായിച്ചിട്ടുണ്ടെങ്കിൽ, പതിവ് പദപ്രയോഗങ്ങളിലെ ചില പ്രതീകങ്ങൾക്ക് (കാലങ്ങൾ, നക്ഷത്രചിഹ്നങ്ങൾ, ഡോളർ ചിഹ്നങ്ങൾ മുതലായവ) ഒരു പ്രത്യേക അർത്ഥമുണ്ടെന്ന് നിങ്ങൾ ഇതിനകം മനസ്സിലാക്കിയിട്ടുണ്ട്. നിങ്ങൾക്ക് ഈ പ്രതീകങ്ങൾ സ്വയം തിരയണമെങ്കിൽ, അവയ്ക്ക് മുമ്പായി ഒരു ബാക്ക്സ്ലാഷ് ഉണ്ടാകും (ചിലപ്പോൾ വിളിക്കപ്പെടുന്നു സംരക്ഷണം). അതിനാൽ, "g" എന്ന ശകലത്തിനായി തിരയുമ്പോൾ. നമ്മൾ സാധാരണ പദപ്രയോഗത്തിൽ എഴുതണം മിസ്റ്റർ. ഞങ്ങൾ ഒരു പ്ലസ് തിരയുകയാണെങ്കിൽ, പിന്നെ + തുടങ്ങിയവ.
ഞങ്ങളുടെ ടെംപ്ലേറ്റിലെ അടുത്ത രണ്ട് പ്രതീകങ്ങൾ, ഡോട്ടും ക്വാണ്ടിഫയർ നക്ഷത്രചിഹ്നവും, ഏതെങ്കിലും പ്രതീകങ്ങളുടെ എണ്ണം, അതായത് ഏതെങ്കിലും നഗരത്തിന്റെ പേര്.
ടെംപ്ലേറ്റിന്റെ അവസാനം ഒരു കോമയുണ്ട്, കാരണം നമ്മൾ "g" എന്നതിൽ നിന്നുള്ള വാചകം തിരയുകയാണ്. ഒരു കോമയിലേക്ക്. എന്നാൽ വാചകത്തിൽ നിരവധി കോമകൾ ഉണ്ടാകാം, അല്ലേ? നഗരം കഴിഞ്ഞാൽ മാത്രമല്ല, തെരുവ്, വീടുകൾ മുതലായവയ്ക്ക് ശേഷവും നമ്മുടെ അഭ്യർത്ഥന നിർത്തുന്നത് ഏതാണ്? അതിനാണ് ചോദ്യചിഹ്നം. അതില്ലാതെ, ഞങ്ങളുടെ പതിവ് പദപ്രയോഗം സാധ്യമായ ഏറ്റവും ദൈർഘ്യമേറിയ സ്ട്രിംഗ് പുറത്തെടുക്കും:
പതിവ് പദപ്രയോഗങ്ങളുടെ കാര്യത്തിൽ, അത്തരമൊരു പാറ്റേൺ "അത്യാഗ്രഹം" ആണ്. സാഹചര്യം ശരിയാക്കാൻ, ഒരു ചോദ്യചിഹ്നം ആവശ്യമാണ് - അത് ക്വാണ്ടിഫയറിനെ "പിശുക്ക്" ആക്കുന്നു - കൂടാതെ ഞങ്ങളുടെ അന്വേഷണം "g" ന് ശേഷമുള്ള ആദ്യത്തെ കൌണ്ടർ കോമയിലേക്ക് മാത്രമേ ടെക്സ്റ്റിനെ എടുക്കൂ:
പൂർണ്ണ പാതയിൽ നിന്നുള്ള ഫയലിന്റെ പേര്
പൂർണ്ണമായ പാതയിൽ നിന്ന് ഫയലിന്റെ പേര് എക്സ്ട്രാക്റ്റുചെയ്യുക എന്നതാണ് മറ്റൊരു സാധാരണ സാഹചര്യം. ഫോമിന്റെ ലളിതമായ ഒരു സാധാരണ പദപ്രയോഗം ഇവിടെ സഹായിക്കും:
തിരച്ചിൽ യഥാർത്ഥത്തിൽ വിപരീത ദിശയിലാണ് സംഭവിക്കുന്നത് എന്നതാണ് ഇവിടെയുള്ള തന്ത്രം - അവസാനം മുതൽ തുടക്കം വരെ, കാരണം ഞങ്ങളുടെ ടെംപ്ലേറ്റിന്റെ അവസാനം $, അതിനുമുമ്പ് വലതുവശത്ത് നിന്നുള്ള ആദ്യത്തെ ബാക്ക്സ്ലാഷ് വരെ ഞങ്ങൾ എല്ലാം തിരയുന്നു. മുൻ ഉദാഹരണത്തിലെ ഡോട്ട് പോലെ ബാക്ക്സ്ലാഷ് രക്ഷപ്പെട്ടു.
PS
"അവസാനത്തിലേക്ക്" മുകളിൽ പറഞ്ഞവയെല്ലാം പതിവ് പദപ്രയോഗങ്ങൾ നൽകുന്ന എല്ലാ സാധ്യതകളുടെയും ഒരു ചെറിയ ഭാഗമാണെന്ന് ഞാൻ വ്യക്തമാക്കാൻ ആഗ്രഹിക്കുന്നു. അവയുടെ ഉപയോഗത്തിനായി ധാരാളം പ്രത്യേക പ്രതീകങ്ങളും നിയമങ്ങളും ഉണ്ട്, കൂടാതെ മുഴുവൻ പുസ്തകങ്ങളും ഈ വിഷയത്തിൽ എഴുതിയിട്ടുണ്ട് (ഒരു തുടക്കത്തിനായി ഞാൻ ഇത് ശുപാർശ ചെയ്യുന്നു). ഒരു തരത്തിൽ പറഞ്ഞാൽ, പതിവ് പ്രയോഗങ്ങൾ എഴുതുന്നത് ഏതാണ്ട് ഒരു കലയാണ്. മിക്കവാറും എല്ലായ്പ്പോഴും, കണ്ടുപിടിച്ച റെഗുലർ എക്സ്പ്രഷൻ മെച്ചപ്പെടുത്താനോ അനുബന്ധമാക്കാനോ കഴിയും, ഇത് കൂടുതൽ ഗംഭീരമാക്കുകയോ ഇൻപുട്ട് ഡാറ്റയുടെ വിശാലമായ ശ്രേണിയിൽ പ്രവർത്തിക്കാൻ പ്രാപ്തമാക്കുകയോ ചെയ്യുന്നു.
മറ്റുള്ളവരുടെ പതിവ് പദപ്രയോഗങ്ങൾ വിശകലനം ചെയ്യുന്നതിനും വിശകലനം ചെയ്യുന്നതിനും അല്ലെങ്കിൽ നിങ്ങളുടേതായ ഡീബഗ് ചെയ്യുന്നതിനും, നിരവധി സൗകര്യപ്രദമായ ഓൺലൈൻ സേവനങ്ങളുണ്ട്: RegEx101, RegExr കൂടുതൽ
നിർഭാഗ്യവശാൽ, ക്ലാസിക് റെഗുലർ എക്സ്പ്രഷനുകളുടെ എല്ലാ സവിശേഷതകളും VBA-യിൽ പിന്തുണയ്ക്കുന്നില്ല (ഉദാഹരണത്തിന്, റിവേഴ്സ് സെർച്ച് അല്ലെങ്കിൽ POSIX ക്ലാസുകൾ) കൂടാതെ സിറിലിക്കിനൊപ്പം പ്രവർത്തിക്കാൻ കഴിയും, എന്നാൽ നിങ്ങളെ പ്രസാദിപ്പിക്കാൻ ആദ്യമായി അവിടെ ഉള്ളത് മതിയെന്ന് ഞാൻ കരുതുന്നു.
നിങ്ങൾ വിഷയത്തിൽ പുതിയ ആളല്ലെങ്കിൽ, നിങ്ങൾക്ക് എന്തെങ്കിലും പങ്കിടാനുണ്ടെങ്കിൽ, Excel-ൽ പ്രവർത്തിക്കുമ്പോൾ ഉപയോഗപ്രദമായ പതിവ് പദപ്രയോഗങ്ങൾ ചുവടെയുള്ള അഭിപ്രായങ്ങളിൽ ഇടുക. ഒരു മനസ്സ് നല്ലതാണ്, എന്നാൽ രണ്ട് ബൂട്ടുകൾ ഒരു ജോഡിയാണ്!
- SUBSTITUTE ഫംഗ്ഷൻ ഉപയോഗിച്ച് ടെക്സ്റ്റ് മാറ്റിസ്ഥാപിക്കുകയും വൃത്തിയാക്കുകയും ചെയ്യുന്നു
- വാചകത്തിലെ ലാറ്റിൻ അക്ഷരങ്ങൾ തിരയുകയും ഹൈലൈറ്റ് ചെയ്യുകയും ചെയ്യുക
- ഏറ്റവും അടുത്തുള്ള സമാന വാചകത്തിനായി തിരയുക (ഇവാനോവ് = ഇവനോവ് = ഇവാനോഫ്, മുതലായവ)