توابع برای جستجوی رشته ها 

جستجو به طور پیش فرض در تمام این توابع حساس به حروف است. انواع جداگانه ای برای جستجوی غیر حساس مورد وجود دارد.

موقعیت (انبار کاه, سوزن), تعیین محل (انبار کاه, سوزن) 

بازگرداندن موقعیت (به بایت) از رشته پیدا شده است در رشته, با شروع از 1.

این نسخهها کار میکند با این فرض که رشته شامل مجموعه ای از بایت به نمایندگی از یک متن کد گذاری تک بایت. اگر این فرض ملاقات کرد و یک شخصیت نمی تواند با استفاده از یک بایت تنها نشان داده شود, تابع یک استثنا پرتاب نمی کند و برخی از نتیجه غیر منتظره را برمی گرداند. اگر شخصیت را می توان با استفاده از دو بایت نشان, این دو بایت و غیره استفاده.

برای یک جستجو غیر حساس به حالت, استفاده از تابع حساس به حالت.

نحو

position(haystack, needle[, start_pos])

نام مستعار: locate(haystack, needle[, start_pos]).

پارامترها

  • haystack — string, in which substring will to be searched. رشته.
  • needle — substring to be searched. رشته.
  • start_pos – Optional parameter, position of the first character in the string to start search. UInt

مقادیر بازگشتی

  • موقعیت شروع در بایت (شمارش از 1), اگر زیر رشته پیدا شد.
  • 0, اگر زیر رشته یافت نشد.

نوع: Integer.

مثالها

عبارت “Hello, world!” شامل مجموعه ای از بایت به نمایندگی از یک متن کد گذاری تک بایت. تابع بازده برخی از نتیجه انتظار می رود:

پرسوجو:

SELECT position('Hello, world!', '!')

نتیجه:

┌─position('Hello, world!', '!')─┐
│                             13 │
└────────────────────────────────┘

همان عبارت در روسیه شامل شخصیت های که نمی تواند با استفاده از یک بایت نشان داده شود. تابع بازده برخی از نتیجه غیر منتظره (استفاده موقعیت 8 تابع برای متن چند بایت کد گذاری):

پرسوجو:

SELECT position('Привет, мир!', '!')

نتیجه:

┌─position('Привет, мир!', '!')─┐
│                            21 │
└───────────────────────────────┘

حساس به حالت 

همان موقعیت بازگرداندن موقعیت (به بایت) از رشته پیدا شده است در رشته, با شروع از 1. استفاده از تابع برای یک جستجو غیر حساس به حالت.

این نسخهها کار میکند با این فرض که رشته شامل مجموعه ای از بایت به نمایندگی از یک متن کد گذاری تک بایت. اگر این فرض ملاقات کرد و یک شخصیت نمی تواند با استفاده از یک بایت تنها نشان داده شود, تابع یک استثنا پرتاب نمی کند و برخی از نتیجه غیر منتظره را برمی گرداند. اگر شخصیت را می توان با استفاده از دو بایت نشان, این دو بایت و غیره استفاده.

نحو

positionCaseInsensitive(haystack, needle[, start_pos])

پارامترها

  • haystack — string, in which substring will to be searched. رشته.
  • needle — substring to be searched. رشته.
  • start_pos – Optional parameter, position of the first character in the string to start search. UInt

مقادیر بازگشتی

  • موقعیت شروع در بایت (شمارش از 1), اگر زیر رشته پیدا شد.
  • 0, اگر زیر رشته یافت نشد.

نوع: Integer.

مثال

پرسوجو:

SELECT positionCaseInsensitive('Hello, world!', 'hello')

نتیجه:

┌─positionCaseInsensitive('Hello, world!', 'hello')─┐
│                                                 1 │
└───────────────────────────────────────────────────┘

موقعیت 8 

بازگرداندن موقعیت (در نقاط یونیکد) از رشته پیدا شده است در رشته, با شروع از 1.

این نسخهها کار میکند با این فرض که رشته شامل مجموعه ای از بایت به نمایندگی از یک متن کد گذاری شده وزارت مخابرات 8. اگر این فرض ملاقات نمی, تابع یک استثنا پرتاب نمی کند و برخی از نتیجه غیر منتظره را برمی گرداند. اگر شخصیت را می توان با استفاده از دو نقطه یونیکد نشان, این دو و غیره استفاده.

برای یک جستجو غیر حساس به حالت, استفاده از تابع در حال بارگذاری.

نحو

positionUTF8(haystack, needle[, start_pos])

پارامترها

  • haystack — string, in which substring will to be searched. رشته.
  • needle — substring to be searched. رشته.
  • start_pos – Optional parameter, position of the first character in the string to start search. UInt

مقادیر بازگشتی

  • موقعیت شروع در یونیکد امتیاز (شمارش از 1), اگر زیر رشته پیدا شد.
  • 0, اگر زیر رشته یافت نشد.

نوع: Integer.

مثالها

عبارت “Hello, world!” در روسیه شامل مجموعه ای از نقاط یونیکد نمایندگی یک متن کد گذاری تک نقطه. تابع بازده برخی از نتیجه انتظار می رود:

پرسوجو:

SELECT positionUTF8('Привет, мир!', '!')

نتیجه:

┌─positionUTF8('Привет, мир!', '!')─┐
│                                12 │
└───────────────────────────────────┘

عبارت “Salut, étudiante!”, جایی که شخصیت می توان با استفاده از یک نقطه نشان داد (U+00E9) یا دو نقطه (U+0065U+0301) تابع را می توان بازگشت برخی از نتیجه غیر منتظره:

پرسوجو برای نامه é که نشان داده شده است یک نقطه یونیکد U+00E9:

SELECT positionUTF8('Salut, étudiante!', '!')

نتیجه:

┌─positionUTF8('Salut, étudiante!', '!')─┐
│                                     17 │
└────────────────────────────────────────┘

پرسوجو برای نامه که به نمایندگی از دو نقطه یونیکد U+0065U+0301:

SELECT positionUTF8('Salut, étudiante!', '!')

نتیجه:

┌─positionUTF8('Salut, étudiante!', '!')─┐
│                                     18 │
└────────────────────────────────────────┘

در حال بارگذاری 

همان موقعیت 8, اما غیر حساس به حروف است. بازگرداندن موقعیت (در نقاط یونیکد) از رشته پیدا شده است در رشته, با شروع از 1.

این نسخهها کار میکند با این فرض که رشته شامل مجموعه ای از بایت به نمایندگی از یک متن کد گذاری شده وزارت مخابرات 8. اگر این فرض ملاقات نمی, تابع یک استثنا پرتاب نمی کند و برخی از نتیجه غیر منتظره را برمی گرداند. اگر شخصیت را می توان با استفاده از دو نقطه یونیکد نشان, این دو و غیره استفاده.

نحو

positionCaseInsensitiveUTF8(haystack, needle[, start_pos])

پارامترها

  • haystack — string, in which substring will to be searched. رشته.
  • needle — substring to be searched. رشته.
  • start_pos – Optional parameter, position of the first character in the string to start search. UInt

مقدار بازگشتی

  • موقعیت شروع در یونیکد امتیاز (شمارش از 1), اگر زیر رشته پیدا شد.
  • 0, اگر زیر رشته یافت نشد.

نوع: Integer.

مثال

پرسوجو:

SELECT positionCaseInsensitiveUTF8('Привет, мир!', 'Мир')

نتیجه:

┌─positionCaseInsensitiveUTF8('Привет, мир!', 'Мир')─┐
│                                                  9 │
└────────────────────────────────────────────────────┘

چند ضلعی 

همان موقعیت اما بازگشت Array از موقعیت (به بایت) از بسترهای مربوطه موجود در رشته. موقعیت ها با شروع از نمایه 1.

جستجو در دنباله ای از بایت بدون توجه به رمزگذاری رشته و میترا انجام می شود.

  • برای جستجو اسکی غیر حساس به حالت, استفاده از تابع multiSearchAllPositionsCaseInsensitive.
  • برای جستجو در یوتف-8, استفاده از تابع چند ضلعی پایگاه داده های8.
  • برای غیر حساس به حالت جستجو-8, استفاده از تابع چند تخصیص چندگانه 18.

نحو

multiSearchAllPositions(haystack, [needle1, needle2, ..., needlen])

پارامترها

  • haystack — string, in which substring will to be searched. رشته.
  • needle — substring to be searched. رشته.

مقادیر بازگشتی

  • مجموعه ای از موقعیت های شروع در بایت (شمارش از 1), اگر زیر رشته مربوطه پیدا شد و 0 اگر یافت نشد.

مثال

پرسوجو:

SELECT multiSearchAllPositions('Hello, World!', ['hello', '!', 'world'])

نتیجه:

┌─multiSearchAllPositions('Hello, World!', ['hello', '!', 'world'])─┐
│ [0,13,0]                                                          │
└───────────────────────────────────────────────────────────────────┘

چند ضلعی پایگاه داده های8 

ببینید multiSearchAllPositions.

ترکیب چندجفتاری (هیستک, [سوزن1 سوزن2, …, needleنه]) 

همان position اما بازده سمت چپ افست از رشته haystack که به برخی از سوزن همسان.

برای یک جستجوی غیر حساس مورد و یا / و در توابع استفاده از فرمت جی تی اف 8 multiSearchFirstPositionCaseInsensitive, multiSearchFirstPositionUTF8, multiSearchFirstPositionCaseInsensitiveUTF8.

مقالههای جدید مرتبط با تحقیق این نویسنده1 سوزن2, …, needleنه]) 

بازگرداندن شاخص i (شروع از 1) سوزن چپ پیدا شده استمن ... در رشته haystack و 0 در غیر این صورت.

برای یک جستجوی غیر حساس مورد و یا / و در توابع استفاده از فرمت جی تی اف 8 multiSearchFirstIndexCaseInsensitive, multiSearchFirstIndexUTF8, multiSearchFirstIndexCaseInsensitiveUTF8.

مولسیرچانی (هیستک, [سوزن1 سوزن2, …, needleنه]) 

بازده 1, اگر حداقل یک سوزن رشتهمن ... مسابقات رشته haystack و 0 در غیر این صورت.

برای یک جستجوی غیر حساس مورد و یا / و در توابع استفاده از فرمت جی تی اف 8 multiSearchAnyCaseInsensitive, multiSearchAnyUTF8, multiSearchAnyCaseInsensitiveUTF8.

همخوانی داشتن (کومه علف خشک, الگو) 

بررسی اینکه رشته با pattern عبارت منظم. یک re2 عبارت منظم. این نحو از re2 عبارات منظم محدود تر از نحو عبارات منظم پرل است.

بازده 0 اگر مطابقت ندارد, یا 1 اگر منطبق.

توجه داشته باشید که نماد ممیز (\) برای فرار در عبارت منظم استفاده می شود. همان نماد برای فرار در لیتر رشته استفاده می شود. بنابراین به منظور فرار از نماد در یک عبارت منظم, شما باید دو بک اسلش ارسال (\) در یک رشته تحت اللفظی.

عبارت منظم با رشته کار می کند به عنوان اگر مجموعه ای از بایت است. عبارت منظم می تواند بایت پوچ نیست.
برای الگوهای به جستجو برای بسترهای در یک رشته, بهتر است به استفاده از مانند و یا ‘position’ از اونجایی که خیلی سریعتر کار میکنن

ملتمتچانی (کومه علف خشک, [الگو1 الگو2, …, patternنه]) 

همان match, اما بازده 0 اگر هیچ یک از عبارات منظم همسان و 1 اگر هر یک از الگوهای مسابقات. این استفاده می کند hyperscan کتابخونه. برای الگوهای به جستجو بسترهای در یک رشته, بهتر است به استفاده از multiSearchAny چون خیلی سریعتر کار میکنه

مقالههای جدید مرتبط با تحقیق این نویسنده1 الگو2, …, patternنه]) 

همان multiMatchAny, اما بازگرداندن هر شاخص که منطبق بر انبار کاه.

اطلاعات دقیق1 الگو2, …, patternنه]) 

همان multiMatchAny, اما بازگرداندن مجموعه ای از تمام شاخص که مطابقت انبار کاه در هر سفارش.

چندبازیماتچانی (هیستک, فاصله, [الگو1 الگو2, …, patternنه]) 

همان multiMatchAny, اما بازده 1 اگر هر الگوی منطبق انبار کاه در یک ثابت ویرایش فاصله. این تابع نیز در حالت تجربی است و می تواند بسیار کند باشد. برای اطلاعات بیشتر نگاه کنید به hyperscan مستندات.

چند شکلی (هیستاک, فاصله, [الگو1 الگو2, …, patternنه]) 

همان multiFuzzyMatchAny, اما می گرداند هر شاخص که منطبق بر انبار کاه در فاصله ویرایش ثابت.

بازهای چندگانه (انبار کاه, فاصله, [الگو1 الگو2, …, patternنه]) 

همان multiFuzzyMatchAny, اما بازگرداندن مجموعه ای از تمام شاخص در هر منظور که مطابقت با انبار کاه در فاصله ویرایش ثابت.

عصاره (انبار کاه, الگو) 

عصاره یک قطعه از یک رشته با استفاده از یک عبارت منظم. اگر ‘haystack’ با ‘pattern’ عبارت منظم, یک رشته خالی بازگشته است. اگر عبارت منظم حاوی وسترن نیست, طول می کشد قطعه که منطبق بر کل عبارت منظم. در غیر این صورت قطعه ای را می گیرد که با اولین زیر دست ساز مطابقت دارد.

خارج تماس بگیرید) 

عصاره تمام قطعات از یک رشته با استفاده از یک عبارت منظم. اگر ‘haystack’ با ‘pattern’ عبارت منظم, یک رشته خالی بازگشته است. بازگرداندن مجموعه ای از رشته متشکل از تمام مسابقات به عبارت منظم. به طور کلی, رفتار همان است که ‘extract’ تابع (در آن طول می کشد برای اولین بار subpattern یا کل بیان اگر وجود ندارد subpattern).

مانند (کومه علف خشک, الگو), کومه علف خشک مانند اپراتور الگوی 

بررسی اینکه یک رشته منطبق یک عبارت ساده به طور منظم.
عبارت منظم می تواند حاوی متسیمبلس باشد % و _.

% نشان می دهد هر مقدار از هر بایت (از جمله صفر شخصیت).

_ نشان می دهد هر یک بایت.

از بک اسلش استفاده کنید (\) برای فرار از متسیمبلس . توجه داشته باشید در فرار در شرح ‘match’ تابع.

برای عبارات منظم مانند %needle%, کد مطلوب تر است و کار می کند به همان سرعتی که position تابع.
برای دیگر عبارات منظم, کد همان است که برای است ‘match’ تابع.

notLike(انبار کاه pattern), انبار کاه نیست مانند الگوی اپراتور 

همان چیزی که به عنوان ‘like’, اما منفی.

نمک زدایی (انبار کاه, سوزن) 

محاسبه فاصله 4 گرم بین haystack و needle: counts the symmetric difference between two multisets of 4-grams and normalizes it by the sum of their cardinalities. Returns float number from 0 to 1 – the closer to zero, the more strings are similar to each other. If the constant needle یا haystack بیش از 32 کیلوبایت است, می اندازد یک استثنا. اگر برخی از غیر ثابت haystack یا needle رشته ها بیش از 32 کیلوبایت, فاصله است که همیشه یکی.

برای جستجوی غیر حساس به حالت یا / و در توابع استفاده از فرمت جی تی اف 8 ngramDistanceCaseInsensitive, ngramDistanceUTF8, ngramDistanceCaseInsensitiveUTF8.

نگراماسراچ (هیستک سوزن) 

مثل ngramDistance اما محاسبه تفاوت غیر متقارن بین needle و haystack – the number of n-grams from needle minus the common number of n-grams normalized by the number of needle مامان بزرگ نزدیک تر به یک, بیشتر احتمال دارد needle در haystack. می تواند برای جستجو رشته فازی مفید باشد.

برای جستجوی غیر حساس به حالت یا / و در توابع استفاده از فرمت جی تی اف 8 ngramSearchCaseInsensitive, ngramSearchUTF8, ngramSearchCaseInsensitiveUTF8.

مقاله اصلی

Rating: 3.1 - 9 votes

Was this content helpful?
★★★☆☆