> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق دوال تقسيم السلاسل النصية

# دوال تقسيم السلاسل النصية

export const DeprecatedBadge = () => {
  return <div className="deprecatedBadge">
            <div className="deprecatedIcon">
            <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M13 0H1C0.734784 0 0.48043 0.105357 0.292893 0.292893C0.105357 0.48043 0 0.734784 0 1V2.5C0 2.76522 0.105357 3.01957 0.292893 3.20711C0.48043 3.39464 0.734784 3.5 1 3.5V9C1 9.26522 1.10536 9.51957 1.29289 9.70711C1.48043 9.89464 1.73478 10 2 10H12C12.2652 10 12.5196 9.89464 12.7071 9.70711C12.8946 9.51957 13 9.26522 13 9V3.5C13.2652 3.5 13.5196 3.39464 13.7071 3.20711C13.8946 3.01957 14 2.76522 14 2.5V1C14 0.734784 13.8946 0.48043 13.7071 0.292893C13.5196 0.105357 13.2652 0 13 0ZM12 9H2V3.5H12V9ZM13 2.5H1V1H13V2.5ZM5 5.5C5 5.36739 5.05268 5.24021 5.14645 5.14645C5.24021 5.05268 5.36739 5 5.5 5H8.5C8.63261 5 8.75979 5.05268 8.85355 5.14645C8.94732 5.24021 9 5.36739 9 5.5C9 5.63261 8.94732 5.75979 8.85355 5.85355C8.75979 5.94732 8.63261 6 8.5 6H5.5C5.36739 6 5.24021 5.94732 5.14645 5.85355C5.05268 5.75979 5 5.63261 5 5.5Z" fill="currentColor" />
            </svg>
        </div>
            ميزة متقادمة
        </div>;
};

<Note>
  تم إنشاء الوثائق أدناه من جدول النظام `system.functions`.
</Note>

{/*AUTOGENERATED_START*/}

<div id="alphaTokens">
  ## alphaTokens
</div>

أُضيف في: v1.1.0

يستخرج مقاطع فرعية من بايتات متتالية ضمن النطاقين `a-z` و `A-Z`، ويُرجع مصفوفة من المقاطع الفرعية المستخرجة.

**البنية**

```sql theme={null}
alphaTokens(s[, max_substrings])
```

**الأسماء البديلة**: `splitByAlpha`

**الوسائط**

* `s` — السلسلة النصية المراد تقسيمها. [`String`](/ar/reference/data-types/string)
* `max_substrings` — اختياري. عندما تكون `max_substrings > 0`، لن يتجاوز عدد السلاسل الفرعية المُعادة `max_substrings`، وإلا فستُعيد الدالة أكبر عدد ممكن من السلاسل الفرعية. [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تعيد مصفوفة من السلاسل الفرعية الناتجة من `s`. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT alphaTokens('abca1abc');
```

```response title=Response theme={null}
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc']          │
└─────────────────────────┘
```

<div id="arrayStringConcat">
  ## arrayStringConcat
</div>

أُضيف في: v1.1.0

يدمج التمثيلات النصية للقيم المدرجة في المصفوفة باستخدام الفاصل المُحدَّد، وهي معلمة اختيارية تُضبط افتراضيًا على سلسلة نصية فارغة.

**الصيغة**

```sql theme={null}
arrayStringConcat(arr[, separator])
```

**الأسماء المستعارة**: `array_to_string`

**الوسيطات**

* `arr` — المصفوفة المطلوب دمج عناصرها. [`Array(T)`](/ar/reference/data-types/array)
* `separator` — اختياري. سلسلة الفاصل. تكون سلسلة فارغة افتراضيًا. [`const String`](/ar/reference/data-types/string)

**القيمة المعادة**

تُرجع السلسلة الناتجة عن الدمج. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT arrayStringConcat(['12/05/2021', '12:50:00'], ' ') AS DateString;
```

```response title=Response theme={null}
┌─DateString──────────┐
│ 12/05/2021 12:50:00 │
└─────────────────────┘
```

<div id="extractAllGroupsVertical">
  ## extractAllGroupsVertical
</div>

مُقدَّم في: v20.5.0

يطابق جميع مجموعات السلسلة باستخدام تعبير نمطي ويُرجع مصفوفة من المصفوفات، بحيث تتضمن كل مصفوفة الأجزاء المطابقة من كل مجموعة، مُجمَّعةً وفق ترتيب ظهورها في سلسلة الإدخال.

**الصياغة**

```sql theme={null}
extractAllGroupsVertical(s, regexp)
```

**الأسماء البديلة**: `extractAllGroups`

**الوسيطات**

* `s` — سلسلة الإدخال المراد الاستخراج منها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)
* `regexp` — التعبير النمطي المطلوب المطابقة عليه. [`const String`](/ar/reference/data-types/string) أو [`const FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

يعيد مصفوفة من المصفوفات، بحيث تحتوي كل مصفوفة داخلية على المجموعات الملتقطة من مطابقة واحدة. وتنتج كل مطابقة مصفوفةً بعناصر تقابل المجموعات الملتقطة في التعبير النمطي (المجموعة 1، المجموعة 2، وهكذا). وإذا لم يتم العثور على أي مطابقات، فستُعاد مصفوفة فارغة. [`Array(Array(String))`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH '< Server: nginx
< Date: Tue, 22 Jan 2019 00:26:14 GMT
< Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
' AS s
SELECT extractAllGroupsVertical(s, '< ([\\w\\-]+): ([^\\r\\n]+)');
```

```response title=Response theme={null}
[['Server','nginx'],['Date','Tue, 22 Jan 2019 00:26:14 GMT'],['Content-Type','text/html; charset=UTF-8'],['Connection','keep-alive']]
```

<div id="ngrams">
  ## ngrams
</div>

تم تقديمه في: v21.11.0

يقسم سلسلة UTF-8 إلى n-grams بطول `N`.

**الصياغة**

```sql theme={null}
ngrams(s, N)
```

**الوسيطات**

* `s` — سلسلة الإدخال. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)
* `N` — طول الـ `n-gram`. [`const UInt8/16/32/64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تعيد مصفوفة من `n-grams`. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT ngrams('ClickHouse', 3);
```

```response title=Response theme={null}
['Cli','lic','ick','ckH','kHo','Hou','ous','use']
```

<div id="reverseBySeparator">
  ## reverseBySeparator
</div>

أُضيفت في: v26.2.0

تعكس ترتيب السلاسل الفرعية في سلسلة نصية مفصولة بفاصل محدد.
تقسم هذه الدالة السلسلة النصية باستخدام الفاصل، ثم تعكس ترتيب الأجزاء الناتجة،
وتضمّها مجددًا باستخدام الفاصل نفسه. وهي مفيدة لتحليل أسماء النطاقات،
ومسارات الملفات، أو أي بيانات هرمية أخرى تحتاج فيها إلى عكس ترتيب المكوّنات.

أمثلة:

* reverseBySeparator('[www.google.com](http://www.google.com)') تعيد 'com.google.www'
* reverseBySeparator('a/b/c', '/') تعيد 'c/b/a'
* reverseBySeparator('x::y::z', '::') تعيد 'z::y::x'

**بناء الجملة**

```sql theme={null}
reverseBySeparator(string[, separator])
```

**الوسيطات**

* `string` — سلسلة الإدخال المطلوب عكس ترتيب أجزائها. [`String`](/ar/reference/data-types/string)
* `separator` — سلسلة الفاصل المستخدمة لتحديد الأجزاء. إذا لم يتم توفيرها، فسيُستخدم '.' (نقطة). القيمة الافتراضية: '.' [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد سلسلة تكون فيها المقاطع الفرعية مرتبة من اليمين إلى اليسار مقارنةً بالسلسلة الأصلية، ومتصلة باستخدام الفاصل نفسه. [`String`](/ar/reference/data-types/string)

**أمثلة**

**عكس اسم النطاق الأساسي**

```sql title=Query theme={null}
SELECT reverseBySeparator('www.google.com')
```

```response title=Response theme={null}
'com.google.www'
```

**عكس ترتيب المسار**

```sql title=Query theme={null}
SELECT reverseBySeparator('a/b/c', '/')
```

```response title=Response theme={null}
'c/b/a'
```

**فاصل مخصص**

```sql title=Query theme={null}
SELECT reverseBySeparator('x::y::z', '::')
```

```response title=Response theme={null}
'z::y::x'
```

**حالة خاصة عند استخدام النقاط**

```sql title=Query theme={null}
SELECT reverseBySeparator('.a.b.', '.')
```

```response title=Response theme={null}
'.b.a.'
```

**عنصر واحد**

```sql title=Query theme={null}
SELECT reverseBySeparator('single')
```

```response title=Response theme={null}
'single'
```

**فاصل فارغ**

```sql title=Query theme={null}
SELECT reverseBySeparator('abcde', '')
```

```response title=Response theme={null}
'edcba'
```

<div id="splitByChar">
  ## splitByChar
</div>

أُضيف في: v1.1.0

يُقسِّم سلسلة نصية باستخدام السلسلة الثابتة المحددة `separator`، والتي يجب أن تتكوّن من محرف واحد تمامًا، إلى مصفوفة من السلاسل الفرعية.
قد تُحدَّد سلاسل فرعية فارغة إذا ظهر الفاصل في بداية السلسلة أو نهايتها، أو إذا وُجدت عدة فواصل متتالية.

<Note>
  يتحكّم الإعداد [`splitby_max_substrings_includes_remaining_string`](/ar/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (القيمة الافتراضية: `0`) في ما إذا كانت السلسلة المتبقية ستُضمَّن في العنصر الأخير من مصفوفة النتيجة عندما تكون الوسيطة `max_substrings > 0`.
</Note>

قد تُحدَّد سلاسل فرعية فارغة في الحالات التالية:

* ظهور فاصل في بداية السلسلة أو نهايتها
* وجود عدة فواصل متتالية
* إذا كانت السلسلة الأصلية `s` فارغة

**الصياغة**

```sql theme={null}
splitByChar(separator, s[, max_substrings])
```

**الوسيطات**

* `separator` — يجب أن يكون الفاصل حرفًا من بايت واحد. [`String`](/ar/reference/data-types/string)
* `s` — السلسلة المراد تقسيمها. [`String`](/ar/reference/data-types/string)
* `max_substrings` — اختياري. إذا كانت `max_substrings > 0`، فستتضمن المصفوفة المُعادة `max_substrings` من السلاسل الفرعية كحد أقصى، وإلا فستُرجع الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية هي `0`.  [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تُرجع مصفوفة من السلاسل الفرعية المحددة. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT splitByChar(',', '1,2,3,abcde');
```

```response title=Response theme={null}
┌─splitByChar(⋯2,3,abcde')─┐
│ ['1','2','3','abcde']    │
└──────────────────────────┘
```

<div id="splitByNonAlpha">
  ## splitByNonAlpha
</div>

أُضيف في: v21.9.0

يقسم السلسلة النصية، المفصولة بمحارف المسافات البيضاء وعلامات الترقيم، إلى مصفوفة من السلاسل الفرعية.

<Note>
  يحدد الإعداد [`splitby_max_substrings_includes_remaining_string`](/ar/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (القيمة الافتراضية: `0`) ما إذا كان سيتم تضمين السلسلة المتبقية في العنصر الأخير من مصفوفة النتائج عندما تكون الوسيطة `max_substrings > 0`.
</Note>

**البنية**

```sql theme={null}
splitByNonAlpha(s[, max_substrings])
```

**المعاملات**

* `s` — السلسلة النصية المراد تقسيمها. [`String`](/ar/reference/data-types/string)
* `max_substrings` — اختياري. عندما تكون قيمة `max_substrings > 0`، لن يتجاوز عدد السلاسل الفرعية المُعادة `max_substrings`، وإلا فستُرجِع الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية: `0`. [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجِع مصفوفة من السلاسل الفرعية المحددة لـ `s`. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT splitByNonAlpha('user@domain.com');
```

```response title=Response theme={null}
['user','domain','com']
```

<div id="splitByRegexp">
  ## splitByRegexp
</div>

أُضيف في: v21.6.0

يقسّم سلسلة مفصولة بالتعبير النمطي المُعطى إلى مصفوفة من السلاسل الفرعية.
إذا كان التعبير النمطي المُعطى فارغًا، فسيقسّم السلسلة إلى مصفوفة من المحارف المفردة.
إذا لم يتم العثور على أي تطابق للتعبير النمطي، فلن يتم تقسيم السلسلة.

قد تظهر سلاسل فرعية فارغة في الحالات التالية:

* إذا وقع تطابق غير فارغ للتعبير النمطي في بداية السلسلة أو نهايتها
* إذا وُجدت عدة تطابقات غير فارغة ومتتالية للتعبير النمطي
* إذا كانت السلسلة الأصلية فارغة بينما التعبير النمطي غير فارغ.

<Note>
  يحدّد الإعداد [`splitby_max_substrings_includes_remaining_string`](/ar/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (الافتراضي: `0`) ما إذا كانت السلسلة المتبقية ستُدرج في العنصر الأخير من المصفوفة الناتجة عندما تكون قيمة `max_substrings > 0`.
</Note>

**البنية**

```sql theme={null}
splitByRegexp(regexp, s[, max_substrings])
```

**المعاملات**

* `regexp` — تعبير نمطي. ثابت. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)
* `s` — السلسلة المراد تقسيمها. [`String`](/ar/reference/data-types/string)
* `max_substrings` — اختياري. عندما تكون `max_substrings > 0`، لن يتجاوز عدد السلاسل الفرعية المُعادة القيمة `max_substrings`، وإلا فستُرجع الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية: `0`. [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع مصفوفة من السلاسل الفرعية المحددة من `s`. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT splitByRegexp('\\d+', 'a12bc23de345f');
```

```response title=Response theme={null}
┌─splitByRegex⋯c23de345f')─┐
│ ['a12bc23de345f']        │
└──────────────────────────┘
```

**تعبير نمطي فارغ**

```sql title=Query theme={null}
SELECT splitByRegexp('', 'abcde');
```

```response title=Response theme={null}
┌─splitByRegexp('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘
```

<div id="splitByString">
  ## splitByString
</div>

أُضيف في: v1.1.0

يقسّم سلسلة نصية باستخدام `separator` ثابت يتكوّن من عدة أحرف إلى مصفوفة من السلاسل الفرعية.
إذا كانت السلسلة النصية `separator` فارغة، فسيُقسَّم النص `s` إلى مصفوفة من الأحرف المفردة.

قد تظهر سلاسل فرعية فارغة في الحالات التالية:

* إذا ظهر فاصل غير فارغ في بداية السلسلة النصية أو نهايتها
* إذا وُجدت عدة فواصل غير فارغة متتالية
* إذا كانت السلسلة النصية الأصلية `s` فارغة وكان الفاصل غير فارغ

<Note>
  يتحكّم الإعداد [`splitby_max_substrings_includes_remaining_string`](/ar/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (الافتراضي: `0`) في ما إذا كانت السلسلة النصية المتبقية ستُدرج في العنصر الأخير من مصفوفة النتيجة عندما تكون الوسيطة `max_substrings > 0`.
</Note>

**البنية**

```sql theme={null}
splitByString(separator, s[, max_substrings])
```

**الوسائط**

* `separator` — الفاصل. [`String`](/ar/reference/data-types/string)
* `s` — السلسلة النصية المراد تقسيمها. [`String`](/ar/reference/data-types/string)
* `max_substrings` — اختياري. عندما تكون `max_substrings > 0`، لن يزيد عدد السلاسل الفرعية المُعادة عن `max_substrings`، وإلا فستُعيد الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية: `0`. [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُعيد مصفوفة من السلاسل الفرعية الناتجة من `s` [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT splitByString(', ', '1, 2 3, 4,5, abcde');
```

```response title=Response theme={null}
┌─splitByStrin⋯4,5, abcde')─┐
│ ['1','2 3','4,5','abcde'] │
└───────────────────────────┘
```

**فاصل فارغ**

```sql title=Query theme={null}
SELECT splitByString('', 'abcde');
```

```response title=Response theme={null}
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘
```

<div id="splitByWhitespace">
  ## splitByWhitespace
</div>

أُضيفت في: v21.9.0

تقسم سلسلة نصية مفصولة بمحارف المسافات البيضاء إلى مصفوفة من السلاسل الفرعية.

<Note>
  يتحكم الإعداد [`splitby_max_substrings_includes_remaining_string`](/ar/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (الافتراضي: `0`) في ما إذا كان الجزء المتبقي من السلسلة النصية يُدرج في العنصر الأخير من مصفوفة النتيجة عندما تكون الوسيطة `max_substrings > 0`.
</Note>

**الصياغة**

```sql theme={null}
splitByWhitespace(s[, max_substrings])
```

**الوسيطات**

* `s` — السلسلة المطلوب تقسيمها. [`String`](/ar/reference/data-types/string)
* `max_substrings` — اختياري. عندما تكون قيمة `max_substrings > 0`، لن يتجاوز عدد السلاسل الفرعية المُعادة `max_substrings`، وإلا فستُعيد الدالة أكبر عدد ممكن من السلاسل الفرعية. القيمة الافتراضية: `0`. [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تعيد مصفوفة من السلاسل الفرعية المختارة من `s`. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT splitByWhitespace('  1!  a,  b.  ');
```

```response title=Response theme={null}
['1!','a,','b.']
```

<div id="tokens">
  ## tokens
</div>

تم تقديمه في: v21.11.0

يقسّم سلسلة نصية إلى رموز باستخدام مُقسِّم الرموز المحدد.

مُقسِّمات الرموز المتاحة:

* `splitByNonAlpha` يقسّم السلاسل النصية عند محارف ASCII غير الأبجدية الرقمية (راجع أيضًا الدالة [splitByNonAlpha](/ar/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)).
* `splitByString(S)` يقسّم السلاسل النصية باستخدام سلاسل الفواصل `S` التي يحدّدها المستخدم (راجع أيضًا الدالة [splitByString](/ar/reference/functions/regular-functions/splitting-merging-functions#splitByString)). يمكن تحديد الفواصل باستخدام معلمة اختيارية، على سبيل المثال: `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`. لاحظ أن كل سلسلة يمكن أن تتكوّن من عدة محارف (`', '` في المثال). قائمة الفواصل الافتراضية، إذا لم تُحدَّد صراحةً، هي مسافة بيضاء واحدة `[' ']`.
* `asciiCJK` يقسّم السلاسل النصية إلى رموز باستخدام قواعد حدود الكلمات في Unicode (على غرار UAX #29). وتُشكّل محارف ASCII الأبجدية الرقمية والشرطات السفلية رموزًا مع الموصلات (`:` للحروف، و`.` و`'` للمحارف من النوع نفسه). أما محارف Unicode غير التابعة لـ ASCII فتتحول إلى رموز من محرف واحد.
* `ngrams(N)` يقسّم السلاسل النصية إلى n-grams متساوية الحجم (راجع أيضًا الدالة [ngrams](/ar/reference/functions/regular-functions/splitting-merging-functions#ngrams)). يمكن تحديد طول ngram باستخدام معلمة عددية صحيحة اختيارية بين 1 و8، على سبيل المثال: `tokens(value, 'ngrams', 3)`. حجم ngram الافتراضي، إذا لم يُحدَّد صراحةً، هو 3.
* `sparseGrams(min_length, max_length, min_cutoff_length)` يقسّم السلاسل النصية إلى n-grams متغيرة الطول لا يقل طولها عن `min_length` ولا يزيد عن `max_length` (شاملًا) من المحارف (راجع أيضًا الدالة [sparseGrams](/ar/reference/functions/regular-functions/string-functions#sparseGrams)). ما لم يُحدَّد ذلك صراحةً، تكون القيمتان الافتراضيتان لـ `min_length` و`max_length` هما 3 و100. وإذا تم تمرير المعلمة `min_cutoff_length`، فستُعاد فقط n-grams التي يكون طولها أكبر من أو مساويًا لـ `min_cutoff_length`. وبالمقارنة مع `ngrams(N)`، ينتج مُقسِّم الرموز `sparseGrams` N-grams متغيرة الطول، مما يتيح تمثيلًا أكثر مرونة للنص الأصلي. على سبيل المثال، `tokens(value, 'sparseGrams', 3, 5, 4)` يُنشئ داخليًا 3- و4- و5-grams من سلسلة الإدخال، ولكن لا تُعاد إلا 4- و5-grams.
* `array` لا يُجري أي تقسيم إلى رموز، أي إن قيمة كل row تُعد رمزًا (راجع أيضًا الدالة [array](/ar/reference/functions/regular-functions/array-functions#array)).

في حالة مُقسِّم الرموز `splitByString`، إذا كانت الرموز لا تشكّل [prefix code](https://en.wikipedia.org/wiki/Prefix_code)، فغالبًا ما ستحتاج إلى أن تُفضِّل المطابقة الفواصل الأطول أولًا.
وللقيام بذلك، مرّر الفواصل بترتيب تنازلي حسب الطول.
على سبيل المثال، مع separators = `['%21', '%']` فإن السلسلة `%21abc` ستُقسَّم إلى رموز على النحو `['abc']`، بينما separators = `['%', '%21']` ستُقسَّم إلى `['21ac']` (وهو على الأرجح ليس ما أردته).

**الصياغة**

```sql theme={null}
tokens(value) -- 'splitByNonAlpha' tokenizer
tokens(value, 'splitByNonAlpha')
tokens(value, 'splitByString'[, separators])
tokens(value, 'asciiCJK')
tokens(value, 'ngrams'[, n])
tokens(value, 'sparseGrams'[, min_length, max_length[, min_cutoff_length]])
tokens(value, 'array')
```

**المعاملات**

* `value` — سلسلة الإدخال. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)
* `tokenizer` — المُقسِّم النصي المراد استخدامه. الوسيطات الصالحة هي `splitByNonAlpha` و`splitByString` و`asciiCJK` و`ngrams` و`sparseGrams` و`array`. هذا الوسيط اختياري، وإذا لم يُحدَّد صراحةً، فالقيمة الافتراضية هي `splitByNonAlpha`. [`const String`](/ar/reference/data-types/string)
* `n` — ينطبق فقط إذا كانت الوسيطة `tokenizer` هي `ngrams`: معلمة اختيارية تحدد طول الـ ngrams. إذا لم تُحدَّد صراحةً، فالقيمة الافتراضية هي `3`. [`const UInt8`](/ar/reference/data-types/int-uint)
* `separators` — ينطبق فقط إذا كانت الوسيطة `tokenizer` هي `split`: معلمة اختيارية تحدد سلاسل الفواصل. إذا لم تُحدَّد صراحةً، فالقيمة الافتراضية هي `[' ']`. [`const Array(String)`](/ar/reference/data-types/array)
* `min_length` — ينطبق فقط إذا كانت الوسيطة `tokenizer` هي `sparseGrams`: معلمة اختيارية تحدد الحد الأدنى لطول الـ gram، والقيمة الافتراضية هي 3. [`const UInt8`](/ar/reference/data-types/int-uint)
* `max_length` — ينطبق فقط إذا كانت الوسيطة `tokenizer` هي `sparseGrams`: معلمة اختيارية تحدد الحد الأقصى لطول الـ gram، والقيمة الافتراضية هي 100. [`const UInt8`](/ar/reference/data-types/int-uint)
* `min_cutoff_length` — ينطبق فقط إذا كانت الوسيطة `tokenizer` هي `sparseGrams`: معلمة اختيارية تحدد الحد الأدنى لطول القطع. [`const UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تعيد مصفوفة الوحدات الرمزية الناتجة من سلسلة الإدخال. [`Array`](/ar/reference/data-types/array)

**أمثلة**

**المُقسِّم النصي الافتراضي**

```sql title=Query theme={null}
SELECT tokens('test1,;\\\\ test2,;\\\\ test3,;\\\\   test4') AS tokens;
```

```response title=Response theme={null}
['test1','test2','test3','test4']
```

**مُجزِّئ Ngram**

```sql title=Query theme={null}
SELECT tokens('abc def', 'ngrams', 3) AS tokens;
```

```response title=Response theme={null}
['abc','bc ','c d',' de','def']
```

<div id="tokensForLikePattern">
  ## tokensForLikePattern
</div>

أُضيف في: v26.3.0

تُقسِّم هذه الدالة سلسلة نمط LIKE إلى tokens باستخدام الـ tokenizer المحدد.

وعلى عكس الدالة `tokens`، فإن هذه الدالة تراعي دلالات نمط LIKE
(مثل محارف البدل في البداية والنهاية)، وتطبّق قواعد خاصة بكل tokenizer
لاستخراج tokens ذات معنى لأغراض Pattern matching.

وهي تدعم مجموعات الوسائط نفسها التي تدعمها الدالة `tokens`؛ أما الوسائط الإضافية
بعد `tokenizer` فتُفسَّر وفقًا للـ tokenizer
المحدد (على سبيل المثال، `n` من أجل `ngrams`، و`separators` من أجل `splitByString`،
و`min_length` / `max_length` \[/ `min_cutoff_length`] من أجل `sparseGrams`).

هذه الدالة مخصّصة أساسًا لأغراض تصحيح الأخطاء والاختبار،
وتُستخدم داخليًا لتحليل سلوك tokenization لأنماط LIKE.

**الصياغة**

```sql theme={null}
tokensForLikePattern(value[, tokenizer[, tokenizer_specific_arguments...]])
```

**الوسيطات**

* `value` — سلسلة الإدخال. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)
* `tokenizer` — مقسِّم النص إلى رموز المراد استخدامه. الوسيطات الصالحة هي `splitByNonAlpha` و`splitByString` و`asciiCJK` و`ngrams` و`sparseGrams` و`array`. هذا الوسيط اختياري، وإذا لم يُحدَّد صراحةً، فستكون القيمة الافتراضية `splitByNonAlpha`. [`const String`](/ar/reference/data-types/string)
* `n` — يكون ذا صلة فقط إذا كانت الوسيطة `tokenizer` هي `ngrams`: معلمة اختيارية تحدد طول ngrams. إذا لم تُحدَّد صراحةً، فستكون القيمة الافتراضية `3`. [`const UInt8`](/ar/reference/data-types/int-uint)
* `separators` — يكون ذا صلة فقط إذا كانت الوسيطة `tokenizer` هي `split`: معلمة اختيارية تحدد سلاسل الفصل. إذا لم تُحدَّد صراحةً، فستكون القيمة الافتراضية `[' ']`. [`const Array(String)`](/ar/reference/data-types/array)
* `min_length` — يكون ذا صلة فقط إذا كانت الوسيطة `tokenizer` هي `sparseGrams`: معلمة اختيارية تحدد الحد الأدنى لطول gram، والقيمة الافتراضية هي 3. [`const UInt8`](/ar/reference/data-types/int-uint)
* `max_length` — يكون ذا صلة فقط إذا كانت الوسيطة `tokenizer` هي `sparseGrams`: معلمة اختيارية تحدد الحد الأقصى لطول gram، والقيمة الافتراضية هي 100. [`const UInt8`](/ar/reference/data-types/int-uint)
* `min_cutoff_length` — يكون ذا صلة فقط إذا كانت الوسيطة `tokenizer` هي `sparseGrams`: معلمة اختيارية تحدد الحد الأدنى لطول القطع. [`const UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يعيد مصفوفة الرموز الناتجة من سلسلة الإدخال. [`Array`](/ar/reference/data-types/array)

**أمثلة**

**مقسِّم الرموز الافتراضي**

```sql title=Query theme={null}
SELECT tokensForLikePattern('%test1,test2,test3%') AS tokens;
```

```response title=Response theme={null}
['test2']
```
