విషయ సూచిక
మీరు సాధారణ వ్యక్తీకరణలతో కనీసం కొంచెం తెలిసి ఉంటే, మీరు వాటిని ప్రచారం చేయవలసిన అవసరం లేదు. మీరు సబ్జెక్ట్లో పూర్తి స్థాయిలో లేకుంటే, రెగ్యులర్ ఎక్స్ప్రెషన్స్ (రెగ్యులర్ ఎక్స్ప్రెషన్స్ = RegExp = “regexps” = “రెగ్యులర్స్”) అనేది ఒక భాష, ఇక్కడ ప్రత్యేక అక్షరాలు మరియు నియమాలను ఉపయోగించి, టెక్స్ట్లో అవసరమైన సబ్స్ట్రింగ్లు శోధించబడతాయి, అవి సంగ్రహించబడతాయి. లేదా ఇతర వచనంతో భర్తీ చేయబడింది. ఇది చాలా శక్తివంతమైన మరియు అందమైన సాధనం, ఇది టెక్స్ట్తో పని చేసే అన్ని ఇతర మార్గాల కంటే ఎక్కువ పరిమాణంలో ఉంటుంది.
మీరు సాధారణ మాక్రోలను ఉపయోగించి Excelకు సాధారణ వ్యక్తీకరణ మద్దతును ఎలా జోడించవచ్చో నేను ఇప్పటికే వివరంగా మరియు జీవితంలోని కొన్ని ఉదాహరణలతో వివరించాను - మీరు ఈ కథనాన్ని చదవకపోతే, కొనసాగించే ముందు దీన్ని చదవమని నేను బాగా సిఫార్సు చేస్తున్నాను. మీరు చాలా కొత్త విషయాలను కనుగొంటారు, నేను హామీ ఇస్తున్నాను 🙂
అయితే, ప్రశ్న తెరిచి ఉంది - పవర్ ప్రశ్నలో సాధారణ వ్యక్తీకరణలను ఉపయోగించగల సామర్థ్యాన్ని ఎలా జోడించాలి? పవర్ క్వెరీ, వాస్తవానికి, దానికదే మంచిది మరియు టెక్స్ట్తో (కటింగ్, గ్లూయింగ్, క్లీనింగ్ మొదలైనవి) చాలా చేయగలదు, కానీ మీరు దానిని సాధారణ వ్యక్తీకరణల శక్తితో దాటగలిగితే, అది కేవలం బాంబు మాత్రమే అవుతుంది.
దురదృష్టవశాత్తూ, పవర్ క్వెరీలో RegExpsతో పని చేయడానికి అంతర్నిర్మిత విధులు ఏవీ లేవు మరియు అధికారిక Microsoft సహాయం మరియు సాంకేతిక మద్దతు ఈ ప్రశ్నకు ప్రతికూలంగా సమాధానం ఇస్తుంది. అయితే, ఈ పరిమితి చుట్టూ ఒక మార్గం ఉంది 🙂
పద్ధతి యొక్క సారాంశం
ప్రధాన ఆలోచన అవమానకరమైనది.
అంతర్నిర్మిత పవర్ క్వెరీ సామర్థ్యాల జాబితాలో, ఒక ఫంక్షన్ ఉంది వెబ్.పేజీ. అధికారిక Microsoft సహాయ సైట్లో ఈ ఫంక్షన్ యొక్క వివరణ చాలా సంక్షిప్తంగా ఉంది:
అనువదించబడితే, ఇది ఇలా ఉంటుంది: "HTML డాక్యుమెంట్లోని కంటెంట్లను దాని కాంపోనెంట్ స్ట్రక్చర్లుగా విభజిస్తుంది, అలాగే ట్యాగ్లు తీసివేయబడిన తర్వాత పూర్తి డాక్యుమెంట్ మరియు దాని బాడీకి ప్రాతినిధ్యం వహిస్తుంది." కాబట్టి-కాబట్టి వివరణ, స్పష్టముగా.
సాధారణంగా ఈ ఫంక్షన్ వెబ్ నుండి డేటాను దిగుమతి చేసేటప్పుడు ఉపయోగించబడుతుంది మరియు స్వయంచాలకంగా భర్తీ చేయబడుతుంది, ఉదాహరణకు, మేము ట్యాబ్లో ఎంచుకున్నప్పుడు సమాచారం కమాండ్ ఇంటర్నెట్ నుండి (డేటా — వెబ్ నుండి). మేము ఫంక్షన్కు వెబ్పేజీని ఆర్గ్యుమెంట్గా అందిస్తాము మరియు ఇది ఇంతకుముందు అన్ని ట్యాగ్లను క్లియర్ చేసిన తర్వాత దాని కంటెంట్లను టేబుల్ల రూపంలో మాకు అందిస్తుంది.
HTML మార్కప్ భాషతో పాటుగా సహాయం ఏమి చెప్పలేదు ఫంక్షన్ వెబ్.పేజీ JavaScript స్క్రిప్ట్లకు మద్దతు ఇస్తుంది, ఇది ఇప్పుడు ఇంటర్నెట్లోని వెబ్సైట్లలో సర్వవ్యాప్తి చెందింది. మరియు JavaScript, క్రమంగా, ఎల్లప్పుడూ సాధారణ వ్యక్తీకరణలతో పని చేయగలదు మరియు RegExps కోసం అంతర్నిర్మిత విధులను కలిగి ఉంది! కాబట్టి పవర్ క్వెరీలో రెగ్యులర్ ఎక్స్ప్రెషన్లను అమలు చేయడానికి, పవర్ క్వెరీ కోసం అన్ని పనిని చేసే చిన్న జావాస్క్రిప్ట్ ప్రోగ్రామ్కు ఆర్గ్యుమెంట్గా Web.Page ఫంక్షన్లను ఫీడ్ చేయాలి.
ఇది స్వచ్ఛమైన జావాస్క్రిప్ట్లో ఎలా కనిపిస్తుంది
ఇంటర్నెట్లో (ఉదాహరణకు, ఒకటి, రెండు) జావాస్క్రిప్ట్లో సాధారణ వ్యక్తీకరణలతో పనిచేయడానికి చాలా వివరణాత్మక ట్యుటోరియల్లు ఉన్నాయి.
సంక్షిప్తంగా మరియు సరళీకృతంగా, జావాస్క్రిప్ట్ కోడ్ ఇలా కనిపిస్తుంది:
ఇక్కడ:
- var str = 'సాసేజ్ కోసం బిల్లులు 123 మరియు 789 చెల్లించండి'; - ఒక వేరియబుల్ సృష్టించండి STR మరియు మేము విశ్లేషించే మూల వచనాన్ని దానికి కేటాయించండి.
- var నమూనా = /d+/gi; - ఒక సాధారణ వ్యక్తీకరణను సృష్టించండి మరియు దానిని వేరియబుల్లో ఉంచండి నమూనా.
వ్యక్తీకరణ స్లాష్ (/)తో ప్రారంభమవుతుంది.
ఇక్కడ వ్యక్తీకరణ, ఉదాహరణకు, ఉంది d+ సంఖ్యల యొక్క ఏదైనా క్రమాన్ని సూచిస్తుంది.
వ్యక్తీకరణ తర్వాత భిన్నం ద్వారా, అదనపు శోధన పారామితులు (మాడిఫైయర్లు) ఉన్నాయి - వాటిని ఏ క్రమంలోనైనా పేర్కొనవచ్చు:
- g – అంటే గ్లోబల్ సెర్చ్, అంటే సరిపోలికను కనుగొన్న తర్వాత, మీరు ఆపివేయకూడదు, కానీ టెక్స్ట్ ముగిసే వరకు శోధనను కొనసాగించండి. ఈ మాడిఫైయర్ సెట్ చేయకుంటే, మా స్క్రిప్ట్ మొదటి మ్యాచ్ని మాత్రమే అందిస్తుంది (123)
- i - అక్షరాలతో సంబంధం లేకుండా శోధించండి
- m - బహుళ-లైన్ శోధన (మూల వచనాన్ని అనేక పంక్తులుగా విభజించినప్పుడు ఉపయోగించబడుతుంది)
- var ఫలితం = str.match(నమూనా).చేరండి(';'); - సోర్స్ టెక్స్ట్లో శోధించండి (STR) ఇచ్చిన సాధారణ వ్యక్తీకరణ ద్వారా (నమూనా) మరియు ఫలితాలను వేరియబుల్లో ఉంచండి ఫలితంగా, ఆదేశాన్ని ఉపయోగించి వాటిని సెమికోలన్తో సంగ్రహించడం చేరడానికి
- document.write(ఫలితం); - ఫలితం వేరియబుల్ యొక్క కంటెంట్లను ప్రదర్శించండి
జావాస్క్రిప్ట్లోని టెక్స్ట్ స్ట్రింగ్లు (సాధారణ వ్యక్తీకరణలను మినహాయించి) పవర్ క్వెరీ లేదా VBAలో ఉన్నందున కోట్లు కాకుండా అపాస్ట్రోఫీలలో జతచేయబడిందని కూడా గమనించండి.
అవుట్పుట్ వద్ద, ఈ స్క్రిప్ట్ మూల వచనంలో కనిపించే అన్ని సంఖ్యలను ఫలితంగా అందిస్తుంది:
123, 789
JavaScript చిన్న కోర్సు ముగిసింది, మీ అందరికీ ధన్యవాదాలు. మీకు లాజిక్ లభిస్తుందని ఆశిస్తున్నాను 🙂
ఈ నిర్మాణాన్ని పవర్ క్వెరీకి బదిలీ చేయడానికి ఇది మిగిలి ఉంది.
పవర్ క్వెరీలో రెగ్యులర్ ఎక్స్ప్రెషన్ ద్వారా టెక్స్ట్ ఫంక్షన్ని శోధించండి మరియు సంగ్రహించండి
మేము ఈ క్రింది వాటిని చేస్తాము:
1. ఎక్సెల్ తెరిచి, ట్యాబ్లో కొత్త ఖాళీ పవర్ క్వెరీని సృష్టించండి డేటా - డేటాను పొందండి / అభ్యర్థనను సృష్టించండి - ఇతర మూలాల నుండి - ఖాళీ అభ్యర్థన (డేటా — డేటా పొందండి / కొత్త ప్రశ్న — ఇతర మూలాల నుండి — ఖాళీ ప్రశ్న). మీరు Excel 2010-2013 యొక్క పాత వెర్షన్ మరియు పవర్ క్వెరీని కలిగి ఉన్నట్లయితే, మీరు అంతర్నిర్మితంగా కలిగి ఉండకపోయినా, ప్రత్యేక యాడ్-ఇన్గా ఇన్స్టాల్ చేయబడి ఉంటే, ఇవన్నీ ట్యాబ్లో ఉంటాయి శక్తి ప్రశ్నమరియు కాదు సమాచారం.
2. తెరుచుకునే ప్రశ్న ఎడిటర్ యొక్క ఖాళీ విండోలో, కుడి ప్యానెల్లో, వెంటనే మా భవిష్యత్తు ఫంక్షన్ పేరును నమోదు చేయండి (ఉదాహరణకు, fxRegExpExtract)
3. ట్యాబ్కి వెళ్దాం వీక్షణ - అధునాతన ఎడిటర్ (వీక్షణ — అధునాతన ఎడిటర్), మేము ఖాళీ అభ్యర్థన యొక్క మొత్తం M-కోడ్ను చెరిపివేస్తాము మరియు మా సూపర్ ఫంక్షన్ కోడ్ను అక్కడ అతికించండి:
మీ చేతులను చూసుకోండి:
మొదటి పంక్తిలో, మా ఫంక్షన్ మూడు టెక్స్ట్ ఆర్గ్యుమెంట్లను కలిగి ఉంటుందని మేము చెప్పాము: టిఎక్స్ టి - అసలు వచనం విశ్లేషించబడుతోంది, రెజెక్స్ - సాధారణ వ్యక్తీకరణ నమూనా, డీలిమ్ — ఫలితాలను ప్రదర్శించడానికి డీలిమిటర్ అక్షరం.
తరువాత మనం ఫంక్షన్ అని పిలుస్తాము వెబ్.పేజీ, దాని వాదనలో పైన వివరించిన జావాస్క్రిప్ట్ కోడ్ను రూపొందించడం. మేము మా వేరియబుల్ ఆర్గ్యుమెంట్లను కోడ్లో అతికించి, ప్రత్యామ్నాయం చేస్తాము.
శకలం:
[డేటా]{0}[పిల్లలు]{0}[పిల్లలు]{1}[వచనం]{0}
… మనకు అవసరమైన ఫలితాలతో టేబుల్లోకి “పడిపోవడం” అవసరం. విషయం ఏమిటంటే ఫంక్షన్ వెబ్.పేజీ ఫలితంగా, ఇది వెబ్ పేజీ యొక్క నిర్మాణాన్ని పునరావృతం చేసే అనేక సమూహ పట్టికలను ఉత్పత్తి చేస్తుంది. ఈ M-కోడ్ భాగం లేకుండా, మా ఫంక్షన్ దీన్ని అవుట్పుట్ చేస్తుంది:
… మరియు మేము పదాన్ని చాలాసార్లు క్లిక్ చేయాలి టేబుల్, నిలువు వరుసలలో చైల్డ్ నెస్టెడ్ టేబుల్లలోకి వరుసగా "పడిపోవడం" పిల్లలు:
ఈ కొటేషన్లన్నింటికీ బదులుగా, మేము వెంటనే మా ఫంక్షన్ కోడ్లో పట్టిక మరియు నిలువు వరుసను సూచిస్తాము (టెక్స్ట్) మాకు అవసరము.
ఇక్కడ, నిజానికి, అన్ని రహస్యాలు ఉన్నాయి. బటన్ను నొక్కడానికి ఇది మిగిలి ఉంది ముగించు కిటికీలో అధునాతన ఎడిటర్, ఇక్కడ మేము మా కోడ్ను చొప్పించాము మరియు మీరు అత్యంత రుచికరమైనదిగా కొనసాగవచ్చు - మా పనిని పనిలో ప్రయత్నించండి.
ఇక్కడ కొన్ని విత్తన ఉదాహరణలు ఉన్నాయి.
ఉదాహరణ 1. చెల్లింపు వివరణ నుండి ఖాతా నంబర్ మరియు తేదీని తిరిగి పొందడం
మేము చెల్లింపుల వివరణ (ప్రయోజనం)తో కూడిన బ్యాంక్ స్టేట్మెంట్ని కలిగి ఉన్నాము, ఇక్కడ మీరు చెల్లించిన ఇన్వాయిస్ల సంఖ్యలు మరియు తేదీలను ప్రత్యేక నిలువు వరుసలలోకి తీసివేయాలి:
మేము టేబుల్ను ప్రామాణిక పద్ధతిలో పవర్ క్వెరీలోకి లోడ్ చేస్తాము డేటా – టేబుల్/రేంజ్ నుండి (డేటా - T నుండిసామర్థ్యం/Rదేవదూత).
అప్పుడు మేము మా ఫంక్షన్తో లెక్కించిన నిలువు వరుసను జోడిస్తాము కాలమ్ జోడించండి - కస్టమ్ ఫంక్షన్ కాల్ (నిలువు వరుసను జోడించు - అనుకూల ఫంక్షన్ను ప్రారంభించండి) మరియు దాని వాదనలను నమోదు చేయండి:
సాధారణ వ్యక్తీకరణగా (వాదన రెజెక్స్) మేము ఉపయోగించే టెంప్లేట్:
(d{3,5}|d{2}.d{2}.d{4})
… మానవ భాషలోకి అనువదించబడిన అర్థం:
3 నుండి 5 అంకెల వరకు సంఖ్యలు (ఖాతా సంఖ్యలు)
or
ఫారమ్ యొక్క శకలాలు "2-బిట్ నంబర్ - పాయింట్ - 2-బిట్ నంబర్ - పాయింట్ - 4-బిట్ నంబర్", అంటే, DD.MM.YYYY ఫారమ్ యొక్క తేదీలు.
డీలిమిటర్ క్యారెక్టర్గా (వాదన డీలిమ్) సెమికోలన్ను నమోదు చేయండి.
క్లిక్ చేసిన తర్వాత OK మా మ్యాజిక్ ఫంక్షన్ మా సాధారణ వ్యక్తీకరణ ప్రకారం అన్ని ప్రారంభ డేటాను విశ్లేషిస్తుంది మరియు ఇన్వాయిస్ల యొక్క కనుగొనబడిన సంఖ్యలు మరియు తేదీలతో మా కోసం ఒక నిలువు వరుసను ఏర్పరుస్తుంది:
ఇది కమాండ్ ఉపయోగించి సెమికోలన్ ద్వారా వేరు చేయడానికి మిగిలి ఉంది హోమ్ — స్ప్లిట్ కాలమ్ — డీలిమిటర్ ద్వారా (హోమ్ — స్ప్లిట్ కాలమ్ — డీలిమిటర్ ద్వారా) మరియు మేము కోరుకున్నది పొందుతాము:
అందం!
ఉదాహరణ 2: టెక్స్ట్ నుండి ఇమెయిల్ చిరునామాలను సంగ్రహించండి
ప్రారంభ డేటాగా మనకు ఈ క్రింది పట్టిక ఉందని అనుకుందాం:
… మేము అక్కడ కనిపించే ఇమెయిల్ చిరునామాలను ఎక్కడ నుండి తీసివేయాలి (స్పష్టత కోసం, నేను వాటిని టెక్స్ట్లో ఎరుపు రంగులో హైలైట్ చేసాను).
మునుపటి ఉదాహరణలో వలె, మేము ప్రామాణిక పద్ధతిలో పవర్ క్వెరీకి టేబుల్ను లోడ్ చేస్తాము డేటా – టేబుల్/రేంజ్ నుండి (డేటా - T నుండిసామర్థ్యం/Rదేవదూత).
అప్పుడు మేము మా ఫంక్షన్తో లెక్కించిన నిలువు వరుసను జోడిస్తాము కాలమ్ జోడించండి - కస్టమ్ ఫంక్షన్ కాల్ (నిలువు వరుసను జోడించు - అనుకూల ఫంక్షన్ను ప్రారంభించండి) మరియు దాని వాదనలను నమోదు చేయండి:
ఇమెయిల్ చిరునామాలను అన్వయించడం చాలా కష్టమైన పని మరియు దానిని పరిష్కరించడానికి వివిధ స్థాయిలలో పీడకల యొక్క సాధారణ వ్యక్తీకరణల సమూహం ఉన్నాయి. నేను సాధారణ ఎంపికలలో ఒకదాన్ని ఉపయోగించాను - ఆదర్శం కాదు, కానీ చాలా సందర్భాలలో చాలా పని చేస్తుంది:
[w|.|-]*@w*.[w|.]*
సెపరేటర్గా (డీలిమ్) మీరు సెమికోలన్ మరియు ఖాళీని నమోదు చేయవచ్చు.
నొక్కండి OK మరియు అసలు వచనం “గంజి” నుండి సంగ్రహించబడిన ఇ-మెయిల్ చిరునామాలతో కూడిన కాలమ్ను మేము పొందుతాము:
మేజిక్!
PS
సామెత చెప్పినట్లుగా: "ఇంతకన్నా మెరుగైనది చేయలేని మంచి విషయం లేదు." పవర్ క్వెరీ స్వతహాగా బాగుంది మరియు సాధారణ వ్యక్తీకరణలతో కలిపినప్పుడు, ఇది ఏదైనా టెక్స్ట్ డేటాను ప్రాసెస్ చేయడంలో మాకు పూర్తిగా అవాస్తవిక శక్తిని మరియు సౌలభ్యాన్ని అందిస్తుంది. పవర్ క్వెరీ మరియు పవర్ BI అప్డేట్లలో మైక్రోసాఫ్ట్ ఏదో ఒకరోజు RegExp సపోర్ట్ని జోడిస్తుందని మరియు టాంబురైన్తో పైన పేర్కొన్న అన్ని డ్యాన్స్లు గతానికి సంబంధించినవి అవుతాయని నేను ఆశిస్తున్నాను. సరే, ప్రస్తుతానికి, అవును.
ఆన్లైన్ ఎడిటర్లోనే - https://regexr.com/ సైట్లో సాధారణ వ్యక్తీకరణలతో ప్లే చేయడం సౌకర్యంగా ఉంటుందని కూడా నేను జోడించాలనుకుంటున్నాను. అక్కడ విభాగంలో కమ్యూనిటీ నమూనాలు అన్ని సందర్భాలలో కోసం రెడీమేడ్ రెగ్యులర్ సీజన్లు భారీ సంఖ్యలో ఉన్నాయి. ప్రయోగం - సాధారణ వ్యక్తీకరణల యొక్క మొత్తం శక్తి ఇప్పుడు పవర్ క్వెరీలో మీ సేవలో ఉంది!
- సాధారణ వ్యక్తీకరణలు ఏమిటి (RegExp) మరియు వాటిని Excelలో ఎలా ఉపయోగించాలి
- పవర్ క్వెరీలో అస్పష్టమైన వచన శోధన
- పవర్ క్వెరీని ఉపయోగించి వివిధ ఫైల్ల నుండి పట్టికలను అసెంబ్లింగ్ చేయడం