د ریجیکس په کارولو سره په Excel کې سپین ځایونه او خالي لاینونه لرې کړئ

  • دا شریک کړه
Michael Brown

غواړئ چې سپین ځایونه په خورا مؤثره توګه اداره کړئ؟ په یوه حجره کې د ټولو ځایونو د لرې کولو لپاره منظم بیانونه وکاروئ، ډیری ځایونه د یو واحد کرکټر سره بدل کړئ، یوازې د شمیرو تر منځ ځایونه کم کړئ، او نور.

کوم چې تاسو ډاټا کاروئ، تاسو به په سختۍ سره مخامخ شئ. ډیټاسیټ پرته له ځای څخه. په ډیری حاالتو کې، سپینه ځای ښه دی - تاسو دا د لیدلو لپاره د معلوماتو مختلف برخو جلا کولو لپاره کاروئ ترڅو پوهیدل اسانه کړي. په هرصورت، په ځینو حالتونو کې، دا ممکن بد شي - اضافي ځایونه کولی شي ستاسو فورمولونه ګډوډ کړي او ستاسو کاري پاڼې نږدې غیر منظم کړي.

    ولې په Excel کې د سپینو ځایونو کمولو لپاره منظم بیان وکاروئ؟

    مخکې له دې چې موږ په Excel ورک شیټونو کې د سپینو ځایونو لرې کولو لپاره د منظم بیانونو کارولو په زړه پورې بیاناتو کې ډوب شو، زه غواړم هغه پوښتنې ته ځواب ووایم چې په لومړي ځای کې ذهن ته راځي - ولې موږ ریجیکس ته اړتیا لرو کله چې اکسل دمخه TRIM لري؟ فنکشن؟

    د توپیر د پوهیدو لپاره، راځئ وګورو چې په هره قضیه کې سپینه ځای په پام کې نیول کیږي:

    • د TRIM جوړ شوی فنکشن یوازې د د ځای کرکتر لرې کولی شي. چې د 7-bit ASCII سیسټم کې 32 ارزښت لري.
    • منظم څرګندونه کولی شي د سپینې ځای یو څو مختلف ډولونه وپیژني لکه space ( ) , tab ( \ t ) ، د موټر بیرته راستنیدنه ( \ r ) ، او نوی کرښه (\n). برسیره پردې، دلته د سپیس ځای کرکټر (\s) شتون لري چې دا ټول ډولونه سره سمون لري او د خام ان پټ پاکولو لپاره خورا ګټور دیډاټا.

    په ریښتیا پوهیدل چې د پردې شاته څه پیښیږي ، د حل لپاره کار کول خورا اسانه دي ، سمه ده؟

    په Excel کې د منظم بیاناتو فعالولو څرنګوالی

    دا یو ښه پیژندل شوی حقیقت دی چې د بکس څخه بهر Excel د منظم بیان ملاتړ نه کوي. د دوی د فعالولو لپاره، تاسو اړتیا لرئ د دودیز VBA فعالیت جوړ کړئ. خوشبختانه، موږ دمخه یو لرو، نومول شوی RegExpReplace . انتظار وکړئ، ولې "بدلون" په داسې حال کې چې موږ د لرې کولو په اړه خبرې کوو؟ په ایکسل ژبه کې، "لیرې کول" د "خالي تار سره د ځای په ځای کولو" لپاره یو بل کلمه ده :)

    ستاسو په Excel کې د فنکشن اضافه کولو لپاره، یوازې د دې پاڼې څخه کوډ کاپي کړئ، د VBA مدیر کې یې پیسټ کړئ ، او خپل فایل د ماکرو فعال شوي کاري کتاب په توګه خوندي کړئ (.xlsm).

    دلته ستاسو د حوالې لپاره د فنکشن ترکیب دی:

    RegExpReplace(متن، نمونه، ځای په ځای کول، [instance_num] , [match_case])

    لومړي درې دلیلونه اړین دي، وروستي دوه اختیاري دي.

    چیرته:

    • متن - اصلي تار ته په لټون کې.
    • پټرن - د لټون کولو لپاره ریجیکس.
    • بدلون - هغه متن چې د بدلولو لپاره دی. د لیرې کولو لپاره سپیڅلی ځایونه ، تاسو به دا استدلال یا ته وټاکئ:
      • خالي سټرینګ ("") ترڅو ټول ځایونه پرې کړئ<11
      • ځای کرکټر (" ") څو ځایونه د یو واحد ځای کریکٹر سره بدل کړي
  • Instance_num (اختیاري) - د مثال شمیره. په ډیری قضیو کې، تاسو به دا د ټولو مثالونو بدلولو لپاره پریږدئ(default).
  • Match_case (اختیاري) - د بولین ارزښت په ګوته کوي چې ایا د (دروغ) متن قضیه سره سمون لري یا له پامه غورځول کیږي. د سپین ځای لپاره، دا غیر مناسب دی او له همدې امله پریښودل شوی.
  • د نورو معلوماتو لپاره، مهرباني وکړئ د RegExpReplace فعالیت وګورئ.

    څنګه د ریجیکس سره سپینه ځای لرې کړئ - مثالونه

    د سره د RegExpReplace فنکشن ستاسو په کاري کتاب کې اضافه شوی، راځئ چې په یو وخت کې مختلف سناریوګانې حل کړو.

    د ریجیکس په کارولو سره ټولې سپینې ځایونه لرې کړئ

    په یوه تار کې د ټولو ځایونو لرې کولو لپاره، تاسو په ساده ډول د هر سپین ځای کرکتر لټون کوئ، په شمول یو ځای، یو ټب، د کیریج بیرته راګرځیدنه، او لاین فیډ، او د خالي تار ("") سره یې ځای په ځای کړئ.

    بطره : \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, " +", " "), "^ +| +$", "")

    او تاسو به یو ترلاسه کړئ کامل پایله:

    ریجیکس څو ځایونه د یو کریکټر سره بدل کړي

    په هغه صورت کې چې تاسو غواړئ ټول ځایونه له تار څخه لرې کړئ او د پرله پسې ځایونو هرې ډلې ځای په ځای کړئ د یو ځانګړي کرکټر سره، دا هغه څه دي چې تاسو یې کولو ته اړتیا لرئ:

    لومړی، دا ریجیکس د مخکښو او تعقیبي سپینو ځایونو کمولو لپاره وکاروئ:

    =RegExpReplace(A8, "^[\s]+|[\s]+$", "")

    بیا، پورتني فنکشن ته خدمت وکړئ د بل RegExpReplace دلیل متن ته چې یو یا څو پرله پسې سپین ځایونه د هغه کرکټر سره بدلوي چې تاسو یې مشخص کوئ، د بیلګې په توګه. یو هایفن:

    پټرن : \s+

    بدلون : -

    فرض کړئ چې سرچینه تار په A8 کې دی، فورمول دا شکل اخلي:

    =RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")

    یا تاسو کولی شئ په جلا حجرو کې نمونې او ځای په ځای کړئ لکه څنګه چې په سکرین شاټ کې ښودل شوي:

    19>

    Regex د خالي کرښو لرې کولو لپاره

    دلته یوه پوښتنه ده چې هغه کارونکي چې په یوه حجره کې څو کرښې لري په مکرر ډول پوښتنه کوي: "زما په حجرو کې ډیری خالي کرښې شتون لري. ایا د ترلاسه کولو کومه لاره شتون لري؟له هرې حجرې څخه د تیریدو او هره کرښه په لاسي ډول له مینځه وړلو پرته له دوی څخه خلاص کړئ؟" ځواب: دا اسانه ده!

    د خالي کرښو سره میچ کول چې د اوسنۍ کرښې له پیل څخه تر ^ پورې یو حرف نلري. بله کرښه \n، ریجیکس دا دی:

    بطره : ^\n

    که ستاسو په لید کې خالي لیکې ځایونه یا ټبونه ولري، دا منظم بیان وکاروئ:

    پټرن : ^[\t ]*\n

    د دې فارمول په کارولو سره یوازې ریجیکس د خالي تار سره بدل کړئ، او ټولې خالي کرښې به په یو وخت کې له منځه ولاړې شي!

    =RegExpReplace(A5, $A$2, "")

    د RegEx وسیلو سره د سپینو ځایونو لرې کول

    پورتنۍ بیلګې د ریجیکس لخوا چمتو شوي عالي امکاناتو یوازې یوه کوچنۍ برخه ښودلې. له بده مرغه، ټول نه د کلاسیک منظم بیان ځانګړتیاوې په VBA کې شتون لري.

    خوشبختانه، زموږ د الټیمیټ سویټ سره شامل شوي RegEx اوزار له دې محدودیتونو څخه پاک دي ځکه چې دوی د مایکروسافټ د .NET RegEx انجن لخوا پروسس شوي. دا تاسو ته اجازه درکوي نور پیچلي نمونې جوړې کړئ چې د VBA RegExp بیلو لخوا نه ملاتړ کیږي w تاسو به د داسې منظم بیان مثال ومومئ.

    ریجیکس د شمیرو تر مینځ ځای لرې کولو لپاره

    په الفانومیریک تار کې، فرض کړئ چې تاسو غواړئ یوازې د شمیرو تر مینځ سپین ځایونه لرې کړئ، نو یو تار لکه "A 1 2 B" "A 12 B" کیږي.

    د هر دوه عددونو تر مینځ د سپینې ځای سره د سمون لپاره، تاسو کولی شئ لاندې لید شاوخوا وکاروئ:

    1> نمونه : (؟<=\d)\s+(?=\d)

    د فورمول پر بنسټ جوړ کړئپه پورته ریجیکسونو کې، دلته د ترسره کولو لپاره دوه اسانه ګامونه دي:

    1. په Ablebits Data ټب کې، په متن ګروپ کې، Regex کلیک وکړئ اوزار .

    2. په Regex Tools پین کې، د سرچینې ډاټا غوره کړئ، خپل ریجیکس دننه کړئ، غوره کړئ لیرې کړئ اختیار، او کلیک وکړئ لیرې کړئ .

      د دې لپاره چې پایلې د فورمول په توګه ترلاسه کړئ، نه د ارزښتونو، په یاد ولرئ چې په د فورمول په توګه داخل کړئ چک بکس کې ټیک کړئ.

    په یوه شیبه کې، تاسو به وګورئ چې AblebitsRegexRemove فنکشن په نوي کالم کې د اصلي ډیټا ښي خوا ته داخل شوی.

    په بدیل سره، تاسو کولی شئ په ځینو حجرو کې ریجیکس داخل کړئ. A5 ووایاست، او فورمول په مستقیم ډول په حجره کې د Insert Function د ډیالوګ بکس په کارولو سره دننه کړئ، چیرته چې AblebitsRegexRemove د AblebitsUDFs لاندې طبقه بندي شوی.

    لکه څنګه چې دا فنکشن په ځانګړي ډول د تارونو لرې کولو لپاره ډیزاین شوی ، دا یوازې دوه دلیلونو ته اړتیا لري - د ان پټ سټینګ او ریجیکس:

    =AblebitsRegexRemove(A5, $A$2)

    25>

    Excel د منظم بیانونو په کارولو سره. زه ستاسو د لوستلو لپاره مننه کوم او په راتلونکې اونۍ کې زموږ په بلاګ کې تاسو سره لیدو ته سترګې په لار یم!

    موجود ډاونلوډونه

    د ریجیکس سره سپین ځای لرې کړئ - مثالونه (.xlsm فایل)

    Ultimate Suite - د آزموینې نسخه (.exe فایل)

    کلمې بلکې د تار په پیل او پای کې، کوم چې ښه نه وي. د مخکښ او تعقیبي سپین سپیس څخه د خلاصون لپاره، پورته فورمول په بل RegExpReplace فنکشن کې وخورئ چې د پیل او پای څخه ځایونه پټوي:

    =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")

    ته مخکښ او وروسته پاتې سپین ځای لرې کړئ

    د کرښې په پیل یا پای کې د سپینې ځای لټون کولو لپاره ، د پیل ^ او پای $ اینکرز وکاروئ.

    مخکښ سپین ځای:

    پټرن : ^[\s]+

    پیښه سپین ځای:

    پټرن : [\s ]+$

    لومړی او وروسته سپین ځای:

    بطره : ^[\s]+

    مایکل براون د ټیکنالوژۍ وقف شوی لیوال دی چې د سافټویر وسیلو په کارولو سره د پیچلو پروسو ساده کولو لپاره لیوالتیا لري. د ټیک صنعت کې د یوې لسیزې څخه ډیرې تجربې سره، هغه خپل مهارتونه په مایکروسافټ ایکسل او آؤټ لک کې، او همدارنګه د ګوګل شیټس او اسنادو کې لوړ کړي دي. د مایکل بلاګ د نورو سره د هغه پوهه او تخصص شریکولو ته وقف شوی دی، د تولید او موثریت د ښه کولو لپاره د تعقیب لپاره اسانه لارښوونې او لارښوونې چمتو کوي. که تاسو تجربه لرونکی مسلکي یاست یا پیل کونکی یاست ، د مایکل بلاګ د دې اړین سافټویر وسیلو څخه خورا ډیر ترلاسه کولو لپاره ارزښتناک لیدونه او عملي مشورې وړاندې کوي.