د بریښنا پوښتنې کې منظم بیانونه (RegExp).

که تاسو لږترلږه د منظم بیانونو سره لږ څه پیژنئ، نو تاسو اړتیا نلرئ چې دوی اعلان کړئ. که تاسو په موضوع کې پوره نه یاست، نو منظم بیانونه (Regular Expressions = RegExp = "regexps" = "Regulars") یوه ژبه ده چې د ځانګړو حروفونو او قواعدو په کارولو سره، اړین فرعي سټینګونه په متن کې لټول کیږي، دوی استخراج کیږي. یا د بل متن سره بدل شوی. دا یو خورا پیاوړی او ښکلی وسیله ده، د متن سره د کار کولو نورو ټولو لارو څخه د پراخوالي ترتیب.

ما دمخه په تفصیل او د ژوند څخه د یو شمیر مثالونو سره بیان کړی چې تاسو څنګه کولی شئ د ساده میکرو په کارولو سره Excel ته د منظم بیان ملاتړ اضافه کړئ - که تاسو دا مقاله نه وي لوستلې ، زه په کلکه وړاندیز کوم چې تاسو د دوام ورکولو دمخه دا ولولئ. تاسو به ډیر نوي شیان ومومئ، زه تضمین کوم 🙂

په هرصورت، پوښتنه خلاصه ده - څنګه د پاور پوښتنې کې د منظم بیانونو کارولو وړتیا اضافه کړئ؟ د بریښنا پوښتنه، البته، پخپله ښه ده او کولی شي د متن سره ډیر څه وکړي (کټ کول، ګلینګ کول، پاکول، او نور)، مګر که تاسو د منظم بیان په ځواک سره تیر کړئ، دا به یوازې یو بم وي.

له بده مرغه، د پاور پوښتنې کې د RegExps سره کار کولو لپاره هیڅ جوړ شوي فعالیت شتون نلري، او د مایکروسافټ رسمي مرسته او تخنیکي ملاتړ دې پوښتنې ته منفي ځواب ورکوي. په هرصورت، د دې محدودیت شاوخوا یوه لاره شتون لري 🙂

د میتود اصل

اصلي مفکوره د سپکاوي لپاره ساده ده.

د جوړ شوي بریښنا پوښتنې وړتیاو لیست کې، یو فعالیت شتون لري ویب پاڼه. د مایکروسافټ رسمي مرستې سایټ کې د دې فعالیت توضیح خورا لنډ دی:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

ژباړل شوی، دا به وي: "د HTML سند مینځپانګې د هغې اجزاو جوړښتونو کې مات شوي ، په بیله بیا د بشپړ سند نمایش او د ټاګونو له لرې کولو وروسته د هغې بدن بیرته راګرځوي." دومره وضاحت، په ریښتیا.

معمولا دا فنکشن د ویب څخه ډیټا واردولو په وخت کې کارول کیږي او په اوتومات ډول ځای په ځای کیږي ، د مثال په توګه ، کله چې موږ په ټب کې انتخاب کوو د معلوماتو د د قوماندې د انټرنیټ څخه (ډاټا - له ویب څخه). موږ فنکشن ته یوه ویب پاڼه د دلیل په توګه ورکوو، او دا خپل مینځپانګې موږ ته د جدولونو په بڼه راګرځوي، مخکې له دې چې ټولې ټاګونه پاک کړي.

هغه څه چې مرسته نه وايي دا د HTML مارک اپ ژبې سربیره دنده ویب پاڼه د جاواسکریپټ سکریپټ ملاتړ کوي, کوم چې اوس په انټرنیټ کې په ویب پاڼو کې په هر ځای کې شتون لري. او جاواسکریپټ، په بدل کې، تل د دې توان لري چې د منظم بیانونو سره کار وکړي او د RegExps لپاره جوړ شوي فعالیتونه لري! نو د Power Query کې د منظم بیانونو پلي کولو لپاره، موږ اړتیا لرو چې د Web.Page افعال د یو کوچني جاوا سکریپټ پروګرام لپاره د دلیل په توګه تغذیه کړو چې د پاور پوښتنې لپاره ټول کار کوي.

دا په خالص جاواسکریپټ کې څه ښکاري

په انټرنیټ کې په جاواسکریپټ کې د منظم بیانونو سره د کار کولو په اړه ډیری تفصيلي لارښوونې شتون لري (د مثال په توګه، یو، دوه).

په لنډ او ساده کې، د جاواسکریپټ کوډ به داسې ښکاري:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

دلته:

  • var str = 'د ساسیج لپاره 123 او 789 بیلونه ورکړئ'; - یو متغیر جوړ کړئ س او دا د سرچینې متن وټاکئ چې موږ به یې تحلیل کړو.
  • var نمونه = /d+/gi؛ - یو منظم بیان جوړ کړئ او په متغیر کې یې واچوئ بڼه.

    بیان د سلیش (/) سره پیل کیږي.

    دلته بیان پخپله، د بیلګې په توګه، دی d+ د عددونو د هر ترتیب لپاره ولاړ دی.

    د بیان وروسته د برخې له لارې، د لټون اضافي پیرامیټونه شتون لري (بدلونکي) - دوی په هر ترتیب کې مشخص کیدی شي:

    • g - د نړیوال لټون معنی لري، د بیلګې په توګه د میچ موندلو وروسته، تاسو باید ودریږئ، مګر د متن تر پای پورې لټون ته دوام ورکړئ. که دا ترمیم کونکی نه وي ټاکل شوی، نو زموږ سکریپټ به یوازې لومړۍ لوبه بیرته راولي (123)
    • i - د لیکونو قضیې په پام کې نیولو پرته لټون وکړئ
    • m - څو کرښې لټون (کله چې د سرچینې متن په څو کرښو ویشل کیږي کارول کیږي)
  • var نتيجه = str.match(pattern).join(';'); - د سرچینې متن کې لټون ترسره کړئ (سد ورکړل شوي منظم بیان په واسطه (بڼه) او پایلې په متغیر کې واچوئ پایلهد کمانډ په کارولو سره دوی د سیمیکولون سره یوځای کول سره یوځای شئ
  • document.write(نتیجه)؛ - د پایلې متغیر مینځپانګې ښکاره کړئ

دا هم په یاد ولرئ چې په جاواسکریپټ کې د متن تارونه (د منظم بیانونو پرته) په apostrophes کې تړل شوي، نه نقلونه لکه څنګه چې دوی د پاور پوښتنې یا VBA کې دي.

په محصول کې، دا سکریپټ به موږ ته د پایلې په توګه د سرچینې متن کې موندل شوي ټولې شمیرې راکړي:

123، 789

د جاواسکریپټ لنډ کورس پای ته ورسید، ستاسو ټولو څخه مننه. هیله ده منطق مو ترلاسه کړی وي 🙂

دا پاتې ده چې دا ساختمان د بریښنا پوښتنې ته انتقال شي.

د پاور پوښتنې کې د منظم بیان لخوا د متن فعالیت لټون او استخراج

موږ لاندې کارونه کوو:

1. اکسل خلاص کړئ او په ټب کې نوې خالي بریښنا پوښتنه رامینځته کړئ ډاټا - ډاټا ترلاسه کړئ / غوښتنه رامینځته کړئ - د نورو سرچینو څخه - خالي غوښتنه (ډاټا - ډاټا ترلاسه کړئ / نوې پوښتنه - له نورو سرچینو څخه - خالي پوښتنه). که تاسو د ایکسل 2010-2013 پخوانی نسخه لرئ او د پاور پوښتنې تاسو جوړ نه یاست، مګر د جلا اضافو په توګه نصب شوي، نو دا ټول به په ټب کې وي. د بریښنا پوښتنهاو نه د معلوماتو د.

2. د پوښتنې مدیر په خالي کړکۍ کې چې خلاصیږي ، په ښي پینل کې ، سمدلاسه زموږ د راتلونکي فعالیت نوم دننه کړئ (د مثال په توګه ، fxRegExpExtract)

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

3. راځئ چې ټب ته لاړ شو لید - پرمختللی مدیر (وګوری – پرمختللی مدیر)، موږ د خالي غوښتنې ټول M- کوډ له مینځه یوسو او هلته زموږ د سوپر فنکشن کوډ پیسټ کوو:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

خپلو لاسونو ته پام وکړئ:

په لومړۍ کرښه کې، موږ وایو چې زموږ فعالیت به درې متن دلیلونه ولري: په ډایلولو سره - اصلي متن تحلیل کیږي، ریجیکس - منظم بیان نمونه، ډیلم - د پایلو ښودلو لپاره د ډیلیمیټر کرکټر.

بیا موږ فنکشن بولو ویب پاڼهد جاواسکریپټ کوډ جوړول چې پورته یې په خپل دلیل کې بیان شوي. موږ خپل متغیر دلیلونه په کوډ کې پیسټ او ځای په ځای کوو.

ټوټه:

[ډاټا]{0}[ماشومان]{0}[ماشومان]{1}[متن]{0}

… د هغه پایلو سره چې موږ ورته اړتیا لرو جدول ته د "تللو" لپاره اړتیا ده. ټکی دا دی چې فعالیت ویب پاڼه د پایلې په توګه، دا ډیری ځړول شوي میزونه تولیدوي چې د ویب پاڼې جوړښت تکراروي. د M-code د دې برخې پرته، زموږ فعالیت به دا تولید کړي:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

... او موږ باید څو ځله کلمه کلیک کړو جدول، په پرله پسې توګه په کالمونو کې د ماشومانو د ځنځیرونو میزونو ته په پرله پسې ډول "د راښکته کیدو" څخه ماشومان:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

د دې ټولو اقتباساتو پر ځای، موږ سمدلاسه د خپل فنکشن کوډ کې اشاره کوو چې میز او کالم (متن) موږ اړتیا لرو.

دلته، په حقیقت کې، ټول رازونه دي. دا د تڼۍ فشارولو لپاره پاتې دی فنلند په کړکۍ کې پرمختللی مدیر، چیرې چې موږ خپل کوډ داخل کړ، او تاسو کولی شئ خورا خوندور ته لاړ شئ - په کار کې زموږ فعالیت هڅه وکړئ.

دلته د تخمونو یو څو مثالونه دي.

بېلګه 1. د تادیې له توضیحاتو څخه د حساب شمیره او نیټه ترلاسه کول

موږ د تادیاتو توضیحاتو (هدف) سره یو بانک بیان لرو ، چیرې چې تاسو اړتیا لرئ د تادیه شوي رسیدونو شمیرې او نیټې په جلا کالمونو کې راوباسئ:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

موږ جدول په معیاري ډول د بریښنا پوښتنې ته پورته کوو ډاټا - د جدول / رینج څخه (ډاټا - له Tوړ/Rفرښته).

بیا موږ د خپل فعالیت له لارې حساب شوي کالم اضافه کوو کالم اضافه کړئ - د ګمرک فنکشن ته زنګ ووهئ (کالم اضافه کړئ - د دودیز فعالیت غوښتنه وکړئ) او خپل دلیلونه داخل کړئ:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

د منظم بیان په توګه (دلیل ریجیکس) ټیمپلیټ چې موږ یې کاروو:

(د{3,5}|d{2}.d{2}.d{4})

... د انسان په ژبه ژباړل شوی معنی: 

د 3 څخه تر 5 عددونو شمیرې (د حساب شمیرې)

or

د فورمې ټوټې "2-bit شمیره - نقطه - 2-bit شمیره - نقطه - 4-bit شمیره"، یعني د DD.MM.YYYY فورمې نیټه.

د محدودیت لرونکي کرکټر په توګه (دلیل ډیلم) یو سیمیکولون داخل کړئ.

د کلیک کولو وروسته OK زموږ جادو فعالیت زموږ د منظم بیان سره سم ټول لومړني معلومات تحلیلوي او زموږ لپاره د رسیدونو موندلو شمیرو او نیټو سره یو کالم جوړوي:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

دا د کمانډ په کارولو سره د سیمیکولون لخوا جلا کول پاتې دي کور — سپلایټ کالم — د حد په واسطه (کور – سپلایټ کالم – د حد په واسطه) او موږ هغه څه ترلاسه کوو چې موږ یې غوښتل:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

ښکلا!

2 بېلګه: له متن څخه د بریښنالیک پتې استخراج کړئ

فرض کړئ چې موږ لاندې جدول د ابتدايي معلوماتو په توګه لرو:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

له هغه ځایه چې موږ اړتیا لرو هغه بریښنالیک پتې وباسو چې هلته موندل شوي (د وضاحت لپاره ، ما دوی په متن کې په سور کې روښانه کړل).

لکه څنګه چې په تیرو مثال کې، موږ میز د بریښنا پوښتنې ته په معیاري ډول له لارې پورته کوو ډاټا - د جدول / رینج څخه (ډاټا - له Tوړ/Rفرښته).

بیا موږ د خپل فعالیت له لارې حساب شوي کالم اضافه کوو کالم اضافه کړئ - د ګمرک فنکشن ته زنګ ووهئ (کالم اضافه کړئ - د دودیز فعالیت غوښتنه وکړئ) او خپل دلیلونه داخل کړئ:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

د بریښنالیک پتې پارس کول خورا ستونزمن کار دی او د دې حل کولو لپاره د مختلف درجو خوبونو منظم بیانونه شتون لري. ما یو له ساده انتخابونو څخه کار واخیست - مثالی نه، مګر په ډیری قضیو کې خورا کار کوي:

[w|.|-]*@w*.[w|.]*

د جلا کونکي په توګه (ډیلم) تاسو کولی شئ سیمیکولون او ځای دننه کړئ.

کلیک وکړه OK او موږ د بریښنالیک آدرسونو سره یو کالم ترلاسه کوو چې د اصلي متن "پوریج" څخه استخراج شوي:

د بریښنا پوښتنې کې منظم بیانونه (RegExp).

جادو!

PS

لکه څنګه چې ویل کیږي: "هیڅ ښه شی شتون نلري چې حتی ښه نه وي." د پاور پوښتنې پخپله ښه ده، او کله چې د منظم بیانونو سره یوځای شي، دا موږ ته د هر متن ډیټا پروسس کولو کې په بشپړ ډول غیر واقعیتي ځواک او انعطاف درکوي. زه امید لرم چې مایکروسافټ به یوه ورځ د پاور پوښتنې او پاور BI تازه معلوماتو کې د RegExp ملاتړ اضافه کړي او د تیمبورین سره پورته ټولې نڅاګانې به د تیرو شیانو شي. ښه، د اوس لپاره، هو.

زه دا هم اضافه کول غواړم چې په سایټ کې د منظم څرګندونو سره لوبې کول مناسب دي https://regexr.com/ - په آنلاین مدیر کې. هلته په برخه کې د ټولنې نمونې د ټولو فرصتونو لپاره ډیری چمتو شوي منظم فصلونه شتون لري. تجربه - د منظم بیان ټول ځواک اوس ستاسو په خدمت کې د پاور پوښتنې کې دی!

  • منظم څرګندونې (RegExp) څه دي او څنګه یې په Excel کې وکاروئ
  • د بریښنا پوښتنې کې د فزي متن لټون
  • د پاور پوښتنې په کارولو سره د مختلف فایلونو څخه د میزونو راټولول

یو ځواب ورکړئ ووځي