تابع Text.BetweenDelimiters برای جداسازی قسمتی از یک متن بین دو کاراکتر خاص در پاورکوئری بهصورت ذیل مورداستفاده قرار میگیرد.
Text.BetweenDelimiters( text as nullable text, startDelimiter as text, endDelimiter as text, optional startIndex as any, optional endIndex as any ) as any |
برای مثال با استفاده از این تابع میتوانیم در یک متن بخش بین دو کاراکتر “-” و “/” را جدا کنیم.
این تابع ۵ ورودی به شرح ذیل دریافت میکند.
- ورودی اول این تابع بیانگر متن مرجع است.
- در ورودی دوم کاراکتر مدنظر جهت شروع جداسازی تعیین میگردد.
- کاراکتر مدنظر جهت خاتمه دادن به جداسازی در ورودی سوم این تابع مشخص میشود.
- درصورتیکه کاراکتر مدنظر جهت شروع جداسازی چند بار درون متن مرجع تکرار شده باشد، با استفاده از ورودی چهارم این تابع میتوانیم مشخصی کنیم از چندمین تکرار، جداسازی شروع شود.
- درصورتیکه کاراکتر مدنظر جهت خاتمه دادن به جداسازی چند بار درون متن مرجع تکرار شده باشد، با استفاده از ورودی چهارم این تابع میتوانیم مشخصی کنیم در چندمین تکرار، جداسازی خاتمه یابد.
لازم به ذکر است که مطابق با توابع قبلی، بهمنظور تعیین جهت پیدا کردن کاراکترهای مدنظر در ورودیهای ۴ام و ۵ام این تابع میتوان از حالتهای RelativePosition.FromStart و RelativePosition.FromEnd نیز استفاده نمود.
با توجه به توضیحات فوق، حاصل تابع ذیل برابر با متن بین کاراکتر “-” (اولین تکرار آن) و “/” (اولین تکرار آن) که برابر است با. “۱۱-۱۸۱”
= Text.BetweenDelimiters(“XNW-11-181/MN-12/2-“,”-“,”/”)
اگر بخواهیم جداسازی را از دومین تکرار “-“ شروع کنیم، کافی است در ورودی چهارم این تابع عدد ۱ را بهصورت ذیل وارد کنیم تا حاصل تابع برابر با ۱۸۱ باشد.
= Text.BetweenDelimiters(
“XNW-11-181/MN-12/2-“,
“-“,
“/”,
۱)
و بهصورت مشابه اگر در ورودی پنجم این تابع عدد ۱ نیز وارد شود عمل جداسازی تا دومین تکرار “/” ادامه خواهد یافت و نتیجه برابر با “۱۸۱/MN-12” است.
= Text.BetweenDelimiters(“XNW-11-181/MN-12/2-“,”-“,”/”,1,1)