విషయ సూచిక
అత్యంత ప్రభావవంతమైన మార్గంలో వైట్స్పేస్లను నిర్వహించాలనుకుంటున్నారా? సెల్లోని అన్ని ఖాళీలను తీసివేయడానికి సాధారణ ఎక్స్ప్రెషన్లను ఉపయోగించండి, ఒకే అక్షరంతో బహుళ ఖాళీలను భర్తీ చేయండి, సంఖ్యల మధ్య ఖాళీలను మాత్రమే ట్రిమ్ చేయండి మరియు మరిన్నింటిని ఉపయోగించండి.
మీరు ఏ ఇన్పుట్ డేటాను ఉపయోగిస్తున్నా, మీరు చాలా అరుదుగా ఎదుర్కొంటారు ఖాళీలు లేని డేటాసెట్. చాలా సందర్భాలలో, వైట్స్పేస్ మంచిది - మీరు సులభంగా గ్రహించడానికి వివిధ సమాచారాన్ని దృశ్యమానంగా వేరు చేయడానికి దీన్ని ఉపయోగిస్తారు. అయితే, కొన్ని సందర్భాల్లో, ఇది చెడుగా మారవచ్చు - అదనపు ఖాళీలు మీ సూత్రాలను గందరగోళానికి గురి చేస్తాయి మరియు మీ వర్క్షీట్లను దాదాపుగా నిర్వహించలేని విధంగా చేస్తాయి.
Excelలో వైట్స్పేస్లను ట్రిమ్ చేయడానికి సాధారణ వ్యక్తీకరణను ఎందుకు ఉపయోగించాలి?
ఎక్సెల్ వర్క్షీట్లలోని వైట్స్పేస్లను తొలగించడానికి సాధారణ ఎక్స్ప్రెషన్లను ఉపయోగించడం గురించి మనం పూర్తిగా ఆలోచించే ముందు, నేను ముందుగా గుర్తుకు వచ్చే ప్రశ్నను పరిష్కరించాలనుకుంటున్నాను - Excel ఇప్పటికే TRIMని కలిగి ఉన్నప్పుడు మనకు రీజెక్స్లు ఎందుకు అవసరం ఫంక్షన్?
వ్యత్యాసాన్ని అర్థం చేసుకోవడానికి, ప్రతి సందర్భంలో వైట్స్పేస్గా పరిగణించబడే దాన్ని చూద్దాం:
- అంతర్నిర్మిత TRIM ఫంక్షన్ స్పేస్ క్యారెక్టర్ ని మాత్రమే తీసివేయగలదు 7-బిట్ ASCII సిస్టమ్లో 32 విలువను కలిగి ఉంది.
- సాధారణ వ్యక్తీకరణలు స్పేస్ ( ), ట్యాబ్ (\t), క్యారేజ్ రిటర్న్ (\r) మరియు కొత్త వంటి వైట్స్పేస్ యొక్క కొన్ని విభిన్న రూపాలను గుర్తించగలవు. లైన్ (\n). అదనంగా, వైట్స్పేస్ క్యారెక్టర్ (\s) ఈ అన్ని రకాలకు సరిపోలుతుంది మరియు ముడి ఇన్పుట్ను శుభ్రం చేయడానికి చాలా సహాయకారిగా వస్తుందిడేటా.
తెర వెనుక ఏమి జరుగుతుందో ఖచ్చితంగా తెలుసుకోవడం, పరిష్కారాన్ని రూపొందించడం చాలా సులభం, సరియైనదా?
Excelలో సాధారణ వ్యక్తీకరణలను ఎలా ప్రారంభించాలి
బాక్స్ వెలుపల Excel సాధారణ వ్యక్తీకరణలను సపోర్ట్ చేయదని అందరికీ తెలిసిన విషయమే. వాటిని ప్రారంభించడానికి, మీరు అనుకూల VBA ఫంక్షన్ని సృష్టించాలి. అదృష్టవశాత్తూ, మేము ఇప్పటికే RegExpReplace పేరుతో ఒకదాన్ని కలిగి ఉన్నాము. వేచి ఉండండి, మేము తీసివేయడం గురించి మాట్లాడుతున్నప్పుడు "భర్తీ" ఎందుకు? Excel భాషలో, "తీసివేయి" అనేది "ఖాళీ స్ట్రింగ్తో భర్తీ చేయి" అనే పదం మాత్రమే :)
మీ Excelకి ఫంక్షన్ను జోడించడానికి, ఈ పేజీ నుండి దాని కోడ్ను కాపీ చేసి, VBA ఎడిటర్లో అతికించండి , మరియు మీ ఫైల్ను మాక్రో-ఎనేబుల్డ్ వర్క్బుక్గా సేవ్ చేయండి (.xlsm).
మీ సూచన కోసం ఫంక్షన్ యొక్క సింటాక్స్ ఇక్కడ ఉంది:
RegExpReplace(text, pattern, replacement, [instance_num] , [match_case])మొదటి మూడు ఆర్గ్యుమెంట్లు అవసరం, చివరి రెండు ఐచ్ఛికం.
ఎక్కడ:
- Text - అసలు స్ట్రింగ్ టు శోధించండి.
- నమూనా - శోధించవలసిన రీజెక్స్.
- భర్తీ - భర్తీ చేయవలసిన వచనం. తీసివేయడానికి వైట్స్పేస్లు , మీరు ఈ ఆర్గ్యుమెంట్ని ఇలా సెట్ చేయాలి:
- ఖాళీ స్ట్రింగ్ ("") ఖచ్చితంగా అన్ని స్పేస్లను ట్రిమ్ చేయడానికి<11
- స్పేస్ అక్షరం (" ") బహుళ స్పేస్లను ఒకే స్పేస్ క్యారెక్టర్తో భర్తీ చేయడానికి
మరింత సమాచారం కోసం, దయచేసి RegExpReplace ఫంక్షన్ని చూడండి.
regexతో వైట్స్పేస్ను ఎలా తీసివేయాలి - ఉదాహరణలు
తో RegExpReplace ఫంక్షన్ మీ వర్క్బుక్కి జోడించబడింది, ఒక్కోసారి విభిన్న దృశ్యాలను పరిష్కరిద్దాం.
regexని ఉపయోగించి అన్ని వైట్స్పేస్లను తీసివేయండి
స్ట్రింగ్లోని అన్ని ఖాళీలను తీసివేయడానికి, మీరు వాటితో సహా ఏదైనా వైట్స్పేస్ అక్షరం కోసం శోధించండి. ఖాళీ, ట్యాబ్, క్యారేజ్ రిటర్న్ మరియు లైన్ ఫీడ్ మరియు వాటిని ఖాళీ స్ట్రింగ్ ("")తో భర్తీ చేయండి.
నమూనా : \s+
భర్తీ : ""
సోర్స్ స్ట్రింగ్ A5లో ఉందని ఊహిస్తే, B5లోని ఫార్ములా:
=RegExpReplace(A5, "\s+", "")
మీ నమూనాలను నిర్వహించడం సులభతరం చేయడానికి , మీరు రీజెక్స్ను ముందే నిర్వచించిన సెల్లో ఇన్పుట్ చేయవచ్చు మరియు $A$2 వంటి సంపూర్ణ సూచనను ఉపయోగించి దానిని ఫార్ములాకు సరఫరా చేయవచ్చు, కాబట్టి నిలువు వరుసలో సూత్రాన్ని కాపీ చేస్తున్నప్పుడు సెల్ చిరునామా మారదు.
=RegExpReplace(A5, $A$2, "")
ఒకటి కంటే ఎక్కువ వైట్స్పేస్లను తీసివేయండి
అదనపు ఖాళీ ని తీసివేయడానికి (అంటే ఎక్కువ థా n ఒక వరుస ఖాళీలు), అదే రీజెక్స్ \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, రీజెక్స్:
నమూనా : ^\n
మీ దృశ్యమానంగా ఖాళీ పంక్తులు ఖాళీలు లేదా ట్యాబ్లను కలిగి ఉంటే, ఈ సాధారణ వ్యక్తీకరణను ఉపయోగించండి:
నమూనా : ^[\t ]*\n
ఈ ఫార్ములా ఉపయోగించి రీజెక్స్ను ఖాళీ స్ట్రింగ్తో భర్తీ చేయండి మరియు అన్ని ఖాళీ పంక్తులు ఒకేసారి పోతాయి!
=RegExpReplace(A5, $A$2, "")
RegEx టూల్స్తో వైట్స్పేస్లను తీసివేయడం
పై ఉదాహరణలు రీజెక్స్ అందించిన అద్భుతమైన అవకాశాలలో కొద్ది భాగాన్ని మాత్రమే ప్రదర్శించాయి. దురదృష్టవశాత్తు, అన్నీ కాదు క్లాసిక్ రెగ్యులర్ ఎక్స్ప్రెషన్ల లక్షణాలు VBAలో అందుబాటులో ఉన్నాయి.
అదృష్టవశాత్తూ, మా అల్టిమేట్ సూట్తో చేర్చబడిన RegEx సాధనాలు Microsoft యొక్క .NET RegEx ఇంజిన్ ద్వారా ప్రాసెస్ చేయబడినందున ఈ పరిమితులు లేవు. ఇది మిమ్మల్ని మరింత అధునాతనమైన నమూనాలను రూపొందించడానికి అనుమతిస్తుంది. VBA RegExp. Belo ద్వారా మద్దతు లేదు మీరు అటువంటి సాధారణ వ్యక్తీకరణకు ఉదాహరణను కనుగొంటారు.
సంఖ్యల మధ్య ఖాళీని తీసివేయడానికి రీజెక్స్
ఆల్ఫాన్యూమరిక్ స్ట్రింగ్లో, మీరు సంఖ్యల మధ్య ఖాళీలను మాత్రమే తీసివేయాలనుకుంటున్నారని అనుకుందాం, కాబట్టి స్ట్రింగ్ "A 1 2 B" అనేది "A 12 B" అవుతుంది.
ఏదైనా రెండు అంకెల మధ్య ఖాళీని సరిపోల్చడానికి, మీరు క్రింది లుక్-అరౌండ్లను ఉపయోగించవచ్చు:
నమూనా : (?<=\d)\s+(?=\d)
ఫార్ములా ఆధారంగా రూపొందించడానికిపైన ఉన్న రీజెక్స్లలో, నిర్వహించడానికి ఇక్కడ రెండు సులభమైన దశలు ఉన్నాయి:
- Ablebits డేటా ట్యాబ్లో, Text సమూహంలో, Regexని క్లిక్ చేయండి సాధనాలు .
- Regex Tools పేన్లో, మూల డేటాను ఎంచుకోండి, మీ regexని నమోదు చేయండి, తొలగించు ఎంచుకోండి ఎంపిక, మరియు తొలగించు నొక్కండి.
ఫలితాలను విలువలుగా కాకుండా సూత్రాలుగా పొందడానికి, ఫార్ములాగా చొప్పించు చెక్ బాక్స్లో టిక్ పెట్టాలని గుర్తుంచుకోండి.
కొద్ది సేపట్లో, మీరు AblebitsRegexRemove ఫంక్షన్ని అసలు డేటాకు కుడివైపున కొత్త నిలువు వరుసలో చొప్పించడాన్ని చూస్తారు.
ప్రత్యామ్నాయంగా, మీరు రీజెక్స్ని కొన్ని సెల్లో ఇన్పుట్ చేయవచ్చు. , A5 అని చెప్పండి మరియు Insert Function డైలాగ్ బాక్స్ని ఉపయోగించి నేరుగా సెల్లో సూత్రాన్ని చొప్పించండి, ఇక్కడ AblebitsRegexRemove AblebitsUDFs కింద వర్గీకరించబడింది.
ఈ ఫంక్షన్ స్ట్రింగ్లను తీసివేయడం కోసం ప్రత్యేకంగా రూపొందించబడినందున, దీనికి కేవలం రెండు ఆర్గ్యుమెంట్లు మాత్రమే అవసరం - ఇన్పుట్ స్ట్రింగ్ మరియు రీజెక్స్:
=AblebitsRegexRemove(A5, $A$2)
ఇందులో ఖాళీలను ఎలా తీసివేయాలి సాధారణ వ్యక్తీకరణలను ఉపయోగించి Excel. నేను చదివినందుకు ధన్యవాదాలు మరియు వచ్చే వారం మా బ్లాగ్లో మిమ్మల్ని చూడాలని ఎదురు చూస్తున్నాను!
అందుబాటులో ఉన్న డౌన్లోడ్లు
regexతో వైట్స్పేస్ను తీసివేయండి - ఉదాహరణలు (.xlsm ఫైల్)
అల్టిమేట్ సూట్ - ట్రయల్ వెర్షన్ (.exe ఫైల్)
పదాలు కానీ స్ట్రింగ్ ప్రారంభంలో మరియు చివరిలో కూడా, ఇది మంచిది కాదు. అగ్రస్థానంలో ఉన్న మరియు వెనుకంజలో ఉన్న వైట్స్పేస్ను వదిలించుకోవడానికి, పైన ఉన్న ఫార్ములాని మరొక RegExpReplace ఫంక్షన్లో నెస్ట్ చేయండి, ఇది మొదటి మరియు ముగింపు నుండి ఖాళీలను తీసివేస్తుంది: =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")
Regex to లీడింగ్ మరియు వెనుక ఉన్న వైట్స్పేస్ను తీసివేయండి
ఒక పంక్తి ప్రారంభంలో లేదా చివరిలో వైట్స్పేస్ కోసం శోధించడానికి, ప్రారంభం ^ మరియు ముగింపు $ యాంకర్లను ఉపయోగించండి.
లీడింగ్ వైట్స్పేస్:
నమూనా : ^[\s]+
ట్రైలింగ్ వైట్స్పేస్:
నమూనా : [\s ]+$
లీడింగ్ మరియు వెనుకబడిన వైట్స్పేస్:
నమూనా : ^[\s]+