విషయ సూచిక
ఈ ట్యుటోరియల్లో, మీరు ఇచ్చిన నమూనాకు సరిపోలే సబ్స్ట్రింగ్లను కనుగొనడానికి మరియు సంగ్రహించడానికి Excelలో సాధారణ వ్యక్తీకరణలను ఎలా ఉపయోగించాలో నేర్చుకుంటారు.
Microsoft Excel టెక్స్ట్ని సంగ్రహించడానికి అనేక ఫంక్షన్లను అందిస్తుంది. కణాల నుండి. ఆ ఫంక్షన్లు మీ వర్క్షీట్లలోని చాలా స్ట్రింగ్ ఎక్స్ట్రాక్షన్ సవాళ్లను ఎదుర్కోగలవు. చాలా, కానీ అన్నీ కాదు. టెక్స్ట్ ఫంక్షన్లు పొరపాట్లు చేసినప్పుడు, సాధారణ వ్యక్తీకరణలు రక్షించడానికి వస్తాయి. వేచి ఉండండి... Excelకి RegEx ఫంక్షన్లు లేవు! నిజమే, అంతర్నిర్మిత విధులు లేవు. కానీ మీ స్వంత వాటిని ఉపయోగించకుండా మిమ్మల్ని నిరోధించేది ఏదీ లేదు :)
తీగలను సంగ్రహించడానికి Excel VBA Regex ఫంక్షన్
మీ Excelకి అనుకూల Regex ఎక్స్ట్రాక్ట్ ఫంక్షన్ని జోడించడానికి, కింది కోడ్ను VBA ఎడిటర్లో అతికించండి. VBAలో సాధారణ వ్యక్తీకరణలను ఎనేబుల్ చేయడానికి, మేము అంతర్నిర్మిత Microsoft RegExp ఆబ్జెక్ట్ని ఉపయోగిస్తున్నాము.
పబ్లిక్ ఫంక్షన్ RegExpExtract(టెక్స్ట్ స్ట్రింగ్గా , స్ట్రింగ్గా నమూనా , ఐచ్ఛికంగా instance_num పూర్ణాంకం వలె = 0, ఐచ్ఛికం మ్యాచ్_కేస్ బూలియన్ = ట్రూ ) మసక టెక్స్ట్_మ్యాచ్లు() స్ట్రింగ్ డిమ్ గా మ్యాచ్లు_ఇండెక్స్ పూర్ణాంకంలో లోపం GoTo ErrHandl RegExpExtract = "" సెట్ regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = నమూనా regex.Global = True regex =.MultiLe అప్పుడు మ్యాచ్. పట్టించుకోకుండా = తప్పు వేరే regex.ignorecase = సెట్ మ్యాచ్లైతే నిజమైన ముగింపు = regex.Execute(text) 0 అయితే < మ్యాచ్లు. కౌంట్ అప్పుడు (0 = instance_num) ఆపై రీడిమ్ టెక్స్ట్_మ్యాచ్లు(మ్యాచ్లు.కౌంట్ - 1, 0) మ్యాచ్లు_ఇండెక్స్ కోసం = 0 వరకుVBA RegExp, చాలా శక్తివంతమైన .NET Regex ఫంక్షన్లను చర్చించే తదుపరి భాగాన్ని చదవమని నేను మిమ్మల్ని ప్రోత్సహిస్తున్నాను.Excelలో టెక్స్ట్ని సంగ్రహించడానికి అనుకూల .NET ఆధారిత Regex ఫంక్షన్
VBA RegExp ఫంక్షన్ల వలె కాకుండా ఏదైనా Excel వినియోగదారు వ్రాయవచ్చు, .NET RegEx అనేది డెవలపర్ యొక్క రాజ్యం. మైక్రోసాఫ్ట్ .NET ఫ్రేమ్వర్క్ Perl 5కి అనుకూలమైన పూర్తి-ఫీచర్డ్ రెగ్యులర్ ఎక్స్ప్రెషన్ సింటాక్స్కు మద్దతిస్తుంది. అటువంటి ఫంక్షన్లను ఎలా వ్రాయాలో ఈ కథనం మీకు బోధించదు (నేను ప్రోగ్రామర్ని కాదు మరియు దానిని ఎలా చేయాలో కొంచెం కూడా ఆలోచన లేదు :)
స్టాండర్డ్ .NET RegEx ఇంజిన్ ద్వారా ప్రాసెస్ చేయబడిన నాలుగు శక్తివంతమైన ఫంక్షన్లు ఇప్పటికే మా డెవలపర్లచే వ్రాయబడ్డాయి మరియు అల్టిమేట్ సూట్లో చేర్చబడ్డాయి. దిగువన, Excelలో వచనాన్ని సంగ్రహించడం కోసం ప్రత్యేకంగా రూపొందించబడిన ఫంక్షన్ యొక్క కొన్ని ఆచరణాత్మక ఉపయోగాలను మేము ప్రదర్శిస్తాము.
చిట్కా. .NET Regex సింటాక్స్ గురించి సమాచారం కోసం, దయచేసి .NET రెగ్యులర్ ఎక్స్ప్రెషన్ లాంగ్వేజ్ని చూడండి.
రెగ్యులర్ ఎక్స్ప్రెషన్లను ఉపయోగించి Excelలో స్టింగ్లను ఎలా ఎక్స్ట్రాక్ట్ చేయాలి
మీరు అల్టిమేట్ సూట్ యొక్క తాజా వెర్షన్ ఇన్స్టాల్ చేసారని ఊహిస్తే, సాధారణ ఎక్స్ప్రెషన్లను ఉపయోగించి వచనాన్ని సంగ్రహించడం ఈ రెండు దశలకు తగ్గుతుంది:
- Ablebits డేటా ట్యాబ్లో, Text సమూహంలో, Regex Tools ని క్లిక్ చేయండి.
- Regex Tools పేన్లో, సోర్స్ డేటాను ఎంచుకుని, మీ Regex నమూనాను నమోదు చేసి, Extract ఎంపికను ఎంచుకోండి. ఫలితాన్ని కస్టమ్ ఫంక్షన్గా పొందడానికి, విలువగా కాకుండా, ఫార్ములాగా చొప్పించు తనిఖీని ఎంచుకోండిపెట్టె. పూర్తయిన తర్వాత, సంగ్రహించు బటన్ను క్లిక్ చేయండి.
ఫలితాలు మీ అసలు డేటాకు కుడివైపున ఉన్న కొత్త కాలమ్లో కనిపిస్తాయి:
AblebitsRegexExtract సింటాక్స్
మా అనుకూల ఫంక్షన్ కింది వాక్యనిర్మాణాన్ని కలిగి ఉంది:
AblebitsRegexExtract(reference, regular_expression)ఎక్కడ:
- రిఫరెన్స్ (అవసరం) - సోర్స్ స్ట్రింగ్ని కలిగి ఉన్న సెల్కు సూచన.
- Regular_expression (అవసరం) - సరిపోలడానికి రీజెక్స్ నమూనా.
ముఖ్యమైన గమనిక! Excel కోసం అల్టిమేట్ సూట్ ఇన్స్టాల్ చేయబడిన మెషీన్లలో మాత్రమే ఫంక్షన్ పని చేస్తుంది.
వినియోగ గమనికలు
మీ అభ్యాస వక్రతను సున్నితంగా మరియు మీ అనుభవాన్ని మరింత ఆనందదాయకంగా చేయడానికి, దయచేసి ఈ పాయింట్లకు శ్రద్ధ వహించండి:
- ఫార్ములాను సృష్టించడానికి, మీరు మా Regex సాధనాలు లేదా Excel యొక్క ఇన్సర్ట్ ఫంక్షన్ డైలాగ్ని ఉపయోగించవచ్చు లేదా సెల్లో పూర్తి ఫంక్షన్ పేరును టైప్ చేయవచ్చు. ఫార్ములా చొప్పించిన తర్వాత, మీరు ఏదైనా స్థానిక సూత్రం వలె దీన్ని నిర్వహించవచ్చు (సవరించవచ్చు, కాపీ చేయవచ్చు లేదా తరలించవచ్చు).
- మీరు Regex సాధనాలు పేన్లో నమోదు చేసిన నమూనా 2వ ఆర్గ్యుమెంట్కి వెళుతుంది. ప్రత్యేక సెల్లో సాధారణ వ్యక్తీకరణను ఉంచడం కూడా సాధ్యమే. ఈ సందర్భంలో, కేవలం 2వ ఆర్గ్యుమెంట్ కోసం సెల్ రిఫరెన్స్ని ఉపయోగించండి.
- ఫంక్షన్ మొదట కనుగొనబడిన మ్యాచ్ ని సంగ్రహిస్తుంది.
- డిఫాల్ట్గా, ఫంక్షన్ కేస్ అవుతుంది. -సెన్సిటివ్ . కేస్-ఇన్సెన్సిటివ్ మ్యాచింగ్ కోసం, (?i) నమూనాను ఉపయోగించండి.
- పోలిక కనుగొనబడకపోతే, #N/A లోపంతిరిగి వచ్చింది.
రెజెక్స్ రెండు అక్షరాల మధ్య స్ట్రింగ్ని ఎక్స్ట్రాక్ట్ చేయడానికి
రెండు అక్షరాల మధ్య వచనాన్ని పొందడానికి, మీరు క్యాప్చర్ గ్రూప్ లేదా లుక్-అరౌండ్లను ఉపయోగించవచ్చు.
లెట్స్ మీరు బ్రాకెట్ల మధ్య వచనాన్ని సేకరించేందుకు చూస్తున్నారని చెప్పండి. సమూహాన్ని సంగ్రహించడం సులభమయిన మార్గం.
నమూనా 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)), "]", ""),"[","")
మెరుగైన రీడబిలిటీ కోసం, మేము డీలిమిటర్ కోసం కామాను ఉపయోగిస్తున్నాము.
రెజెక్స్ రెండు స్ట్రింగ్ల మధ్య వచనాన్ని సంగ్రహించడానికి
మేము పనిచేసిన విధానందానిని అక్షరాలా అర్థం చేసుకోండి).
A2లో ఏ సాధారణ వ్యక్తీకరణ నమోదు చేయబడిందనే దానిపై ఆధారపడి, దిగువ ఫార్ములా విభిన్న ఫలితాలను అందిస్తుంది:
=AblebitsRegexExtract(A5, $A$2)
అన్ని సబ్డొమైన్లతో పూర్తి డొమైన్ పేరు ని సంగ్రహించడానికి Regex:
Regex ఉపడొమైన్లు లేకుండా రెండవ-స్థాయి డొమైన్ ని సంగ్రహించడానికి:
ఎక్సెల్లో సాధారణ వ్యక్తీకరణలను ఉపయోగించి వచన భాగాలను ఎలా సంగ్రహించాలి. నేను చదివినందుకు ధన్యవాదాలు మరియు వచ్చే వారం మా బ్లాగ్లో మిమ్మల్ని చూడాలని ఎదురుచూస్తున్నాను!
అందుబాటులో ఉన్న డౌన్లోడ్లు
Excel Regex Extract ఉదాహరణలు (.xlsm ఫైల్)
అల్టిమేట్ సూట్ ట్రయల్ వెర్షన్ (.exe ఫైల్)
\b(0?[0-9]matches.count - 1 text_matches(matches_index, 0) = matches.Item(matches_index) తదుపరి matches_index RegExpExtract = text_matches else RegExpExtract = matches.Item(instance_num - 1) End if End if Fand Exit Function (ErrHxplxEngl)మీకు VBAతో తక్కువ అనుభవం ఉన్నట్లయితే, దశల వారీ వినియోగదారు గైడ్ సహాయకరంగా ఉండవచ్చు: Excelలో VBA కోడ్ను ఎలా చొప్పించాలి.
గమనిక. ఫంక్షన్ పని చేయడానికి, మీ ఫైల్ను స్థూల-ప్రారంభించబడిన వర్క్బుక్ (.xlsm) వలె సేవ్ చేయాలని నిర్ధారించుకోండి.
RegExpExtract సింటాక్స్
RegExpExtract ఫంక్షన్ సాధారణ వ్యక్తీకరణకు సరిపోలే విలువల కోసం ఇన్పుట్ స్ట్రింగ్ను శోధిస్తుంది మరియు ఒకటి లేదా అన్ని సరిపోలికలను సంగ్రహిస్తుంది.
ఫంక్షన్ క్రింది సింటాక్స్ను కలిగి ఉంది. :
RegExpExtract(text, pattern, [instance_num], [match_case])ఎక్కడ:
- Text (అవసరం) - శోధించడానికి టెక్స్ట్ స్ట్రింగ్.
- నమూనా (అవసరం) - సరిపోలే సాధారణ వ్యక్తీకరణ. ఫార్ములాలో నేరుగా సరఫరా చేసినప్పుడు, నమూనా డబుల్ కొటేషన్ మార్కులతో జతచేయబడాలి.
- Instance_num (ఐచ్ఛికం) - ఏ ఉదాహరణను సంగ్రహించాలో సూచించే క్రమ సంఖ్య. విస్మరించబడితే, కనుగొనబడిన అన్ని సరిపోలికలను అందిస్తుంది (డిఫాల్ట్).
- Match_case (ఐచ్ఛికం) - టెక్స్ట్ కేస్ను సరిపోల్చాలా లేదా విస్మరించాలా అని నిర్వచిస్తుంది. TRUE లేదా విస్మరించబడినట్లయితే (డిఫాల్ట్), కేస్-సెన్సిటివ్ మ్యాచింగ్ నిర్వహించబడుతుంది; తప్పు అయితే - కేస్-ఇన్సెన్సిటివ్.
Function Excel 365, Excel 2021, Excel యొక్క అన్ని వెర్షన్లలో పనిచేస్తుంది2019, Excel 2016, Excel 2013 మరియు Excel 2010.
RegExpExtract గురించి మీరు తెలుసుకోవలసిన 4 విషయాలు
మీ Excelలో ఫంక్షన్ను సమర్థవంతంగా ఉపయోగించడానికి, గమనించవలసిన కొన్ని ముఖ్యమైన విషయాలు ఉన్నాయి:
- డిఫాల్ట్గా, ఫంక్షన్ కనుగొన్న అన్ని సరిపోలికలను ఈ ఉదాహరణలో చూపిన విధంగా పొరుగు సెల్లలోకి అందిస్తుంది. నిర్దిష్ట సంఘటనను పొందడానికి, instance_num ఆర్గ్యుమెంట్కు సంబంధిత సంఖ్యను అందించండి.
- డిఫాల్ట్గా, ఫంక్షన్ కేస్-సెన్సిటివ్ . కేస్-ఇన్సెన్సిటివ్ మ్యాచింగ్ కోసం, match_case ఆర్గ్యుమెంట్ని FALSEకి సెట్ చేయండి. VBA పరిమితుల కారణంగా, కేస్-ఇన్సెన్సిటివ్ కన్స్ట్రక్ట్ (?i) పని చేయదు.
- చెల్లుబాటు అయ్యే నమూనా కనుగొనబడకపోతే , ఫంక్షన్ ఏమీ ఇవ్వదు (ఖాళీ స్ట్రింగ్).
- నమూనా చెల్లని అయితే, #VALUE! లోపం ఏర్పడుతుంది.
మీరు మీ వర్క్షీట్లలో ఈ అనుకూల ఫంక్షన్ని ఉపయోగించడం ప్రారంభించే ముందు, దాని సామర్థ్యం ఏమిటో మీరు అర్థం చేసుకోవాలి, సరియైనదా? దిగువ ఉదాహరణలు కొన్ని సాధారణ వినియోగ సందర్భాలను కవర్ చేస్తాయి మరియు డైనమిక్ అర్రే ఎక్సెల్ (మైక్రోసాఫ్ట్ 365 మరియు ఎక్సెల్ 2021) మరియు సాంప్రదాయ ఎక్సెల్ (2019 మరియు పాత వెర్షన్లలో) ప్రవర్తన ఎందుకు భిన్నంగా ఉంటుందో వివరిస్తుంది.
గమనిక. అద్భుత సాధారణ డేటా సెట్ల కోసం అవుట్ రెజెక్స్ ఉదాహరణలు వ్రాయబడ్డాయి. మీ నిజమైన వర్క్షీట్లలో అవి దోషరహితంగా పనిచేస్తాయని మేము హామీ ఇవ్వలేము. రెజెక్స్తో అనుభవం ఉన్నవారు రెగ్యులర్ ఎక్స్ప్రెషన్స్ రాయడం అనేది పరిపూర్ణతకు అంతం లేని మార్గం అని అంగీకరిస్తారు - దాదాపు ఎల్లప్పుడూ చేయడానికి ఒక మార్గం ఉంటుందిఇది మరింత సొగసైనది లేదా విస్తృత శ్రేణి ఇన్పుట్ డేటాను నిర్వహించగల సామర్థ్యం కలిగి ఉంటుంది.
స్ట్రింగ్ నుండి సంఖ్యను సంగ్రహించడానికి Regex
"సులభం నుండి సంక్లిష్టత వరకు" బోధన యొక్క ప్రాథమిక సూత్రాన్ని అనుసరించి, మేము చాలా సాదా సీదాతో ప్రారంభిస్తాము: స్ట్రింగ్ నుండి సంఖ్యను సంగ్రహించడం.
ది. మీరు ఏ సంఖ్యను తిరిగి పొందాలో నిర్ణయించుకోవాల్సిన మొదటి విషయం: మొదటిది, చివరిది, నిర్దిష్ట సంఘటన లేదా అన్ని సంఖ్యలు.
మొదటి సంఖ్యను సంగ్రహించండి
ఇది regex పొందగలిగేంత సులభం. \d అంటే 0 నుండి 9 వరకు ఏదైనా అంకె, మరియు + అంటే ఒకటి లేదా అంతకంటే ఎక్కువ సార్లు, మా సాధారణ వ్యక్తీకరణ ఈ రూపాన్ని తీసుకుంటుంది:
నమూనా : \d+
సెట్ instance_num నుండి 1 వరకు మరియు మీరు కోరుకున్న ఫలితాన్ని పొందుతారు:
=RegExpExtract(A5, "\d+", 1)
A5 అసలు స్ట్రింగ్ ఎక్కడ ఉంది.
సౌలభ్యం కోసం, మీరు ఇన్పుట్ చేయవచ్చు ముందే నిర్వచించిన సెల్లోని నమూనా ($A$2 ) మరియు దాని చిరునామాను $ గుర్తుతో లాక్ చేయండి:
=RegExpExtract(A5, $A$2, 1)
చివరి సంఖ్యను పొందండి
స్ట్రింగ్లోని చివరి సంఖ్యను సంగ్రహించడానికి , ఇక్కడ ఉపయోగించాల్సిన నమూనా ఉంది:
నమూనా : (\d+)(?!.*\d)
మానవ భాషలోకి అనువదించబడింది , ఇది ఇలా చెబుతోంది: ఏదైనా ఇతర సంఖ్య ద్వారా అనుసరించని (ఎక్కడైనా, వెంటనే కాదు) సంఖ్యను కనుగొనండి. దీన్ని వ్యక్తీకరించడానికి, మేము నెగటివ్ లుక్హెడ్ (?!.*\d)ని ఉపయోగిస్తున్నాము, అంటే నమూనా యొక్క కుడి వైపున దాని ముందు ఎన్ని ఇతర అక్షరాలు ఉన్నా ఇతర అంకె (\d) ఉండకూడదు.
=RegExpExtract(A5, "(\d+)(?!.*\d)")
చిట్కాలు:
- నిర్దిష్ట సంఘటన పొందడానికి, నమూనా మరియు తగిన సీరియల్ కోసం \d+ని ఉపయోగించండి instance_num కోసం సంఖ్య.
- అన్ని సంఖ్యలు సంగ్రహించడానికి సూత్రం తదుపరి ఉదాహరణలో చర్చించబడింది.
అన్ని సరిపోలికలను సంగ్రహించడానికి 11>
మా ఉదాహరణను కొంచం ముందుకు తెస్తే, మీరు ఒక స్ట్రింగ్ నుండి అన్ని సంఖ్యలను పొందాలనుకుంటున్నారని అనుకుందాం, ఒక్కటి మాత్రమే కాదు.
మీరు గుర్తుంచుకున్నట్లుగా, సంగ్రహించిన సరిపోలికల సంఖ్య ఐచ్ఛిక <1 ద్వారా నియంత్రించబడుతుంది>instance_num వాదన. డిఫాల్ట్ అన్ని మ్యాచ్లు, కాబట్టి మీరు ఈ పరామితిని వదిలివేయండి:
=RegExpExtract(A2, "\d+")
ఫార్ములా ఒకే సెల్ కోసం అందంగా పని చేస్తుంది, కానీ డైనమిక్ అర్రే ఎక్సెల్ మరియు నాన్-డైనమిక్ వెర్షన్లలో ప్రవర్తన భిన్నంగా ఉంటుంది.
Excel 365 మరియు Excel 2021
డైనమిక్ శ్రేణుల మద్దతు కారణంగా, సాధారణ సూత్రం అన్ని లెక్కించిన ఫలితాలను ప్రదర్శించడానికి అవసరమైనన్ని సెల్లలోకి స్వయంచాలకంగా వ్యాపిస్తుంది. Excel పరంగా, దీనిని స్పిల్డ్ రేంజ్ అంటారు:
Excel 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]+")
అన్ని సరిపోలికలను ఒక సెల్లోకి అవుట్పుట్ చేయడానికి, TEXTJOINలో RegExpExtract ఫంక్షన్ను ఇలా నెస్ట్ చేయండి:
=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 వంటి తేదీలను సంగ్రహించడానికి, రీజెక్స్: \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 |
- మొదటి భాగం \(?\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?\: