الفرق بين المراجعتين ل"Kotlin/kotlin.text/MatchResult/groupValues"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.groupValues</code> في لغة Kotlin}}</noinclude> الخاصية <code>groupValues</code> تعيد نسخة...')
 
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.groupValues</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.groupValues</code> في Kotlin}}</noinclude>
الخاصية <code>groupValues</code> تعيد نسخة من الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured/index|MatchResult.Destructured]]،</code> والتي توفّر مركبات لتفكيك قيم المجموعة المُطابقة. المركبة الأولى تقابل قيمة المجموعة المُطابقَة الأولى، والمركبة الثانية تقابل الثانية، وهكذا دواليك.
+
تمثل الخاصية <code>MatchResult.groupValues</code> [[Kotlin/collection/List|قائمة]] بقيم المجموعة ال<nowiki/>مفهرسة المتطابقة. حجم تلك [[Kotlin/List|القائمة]] يساوي <code>groupCount + 1</code>، إذ يكون <code>groupCount</code> عدد المجموعات المتطابقة في <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]]. تلك المجموعات مُفهرسة بدءًا من العدد 1 وحتى <code>groupCount</code>، والمجموعة ذات الفهرس 0 توافق كل ما تطابق.
 +
 
 +
إن كانت المجموعة في <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]] <nowiki/>اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فستساوي قيمةُ العنصر المقابل في المجموعة <code>groupValues</code> حينئذٍ سلسلةً نصيةً فارغةً.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
open val destructured: Destructured
+
abstract val groupValues: List<String>
  
 
</syntaxhighlight>
 
</syntaxhighlight>
==القيمة المُعادة==
+
==القيمة المعادة==
نسخة من الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured/index|MatchResult.Destructured]]</code>.
+
تعاد [[Kotlin/List|قائمة]] تضم جميع قيم المجموعة المُتطابقة <nowiki/>[[Kotlin/kotlin.text/Regex/index|لتعبير نمطي]].
 
==أمثلة==
 
==أمثلة==
===استخدام الخاصية <code>groupValues</code>===
+
في الشيفرة التالية ننشِئ  <nowiki/>[[Kotlin/kotlin.text/Regex/index|تعبيرًا نمطيًا]] باسم <code>regex</code> باستخدام التابع <code>[[Kotlin/kotlin.text/Regex/Init|Regex()‎]]</code>، ثم نعرّف سلسلة نصية باسم <code>str</code>، ثم نستخرج من <code>str</code>  مجموعات النتائج عبر استدعاء الدالة <code>matchEntire()‎</code>. نستخدم بعدئذٍ الخاصية <code>MatchResult.groupValues</code> لاستخراج مجموعات النتائج:<syntaxhighlight lang="kotlin">
ينشِئ التابع <code>Regex()‎</code> في الشيفرة الآتية تعبيرًا نمطيًا باسم <code>regex</code> لتفكيك مسارات الملفات إلى ثلاث مُركّبات: المجلد (<code>directory</code>) واسم الملف (<code>fileName</code>) والامتداد (<code>extension</code>)، ثم نعرّف سلسلة نصية باسم <code>fullPath</code> تحتوي مسار أحد الملفات، ثم نستخرج من <code>fullPath</code>  مجموعات النتائج عبر استدعاء الدالة<code>matchEntire()‎</code>  عبر  <code>regex</code> وتمرير  <code>fullPath</code> إليها كوسيط، ثم نستخدم الخاصية<code>destructured‎</code> لاستخراج مجموعات النتائج، ثم نطبع الناتج:<syntaxhighlight lang="kotlin">
 
package com.kotlination.filename
 
 
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 +
    val pattern = Regex("[a-zA-Z]+([0-9]+)[a-zA-Z]+([0-9]+)[a-zA-Z]+")
 +
    val str = "ABcDEFG12345DiFKGLSG938SDsFSd"
  
val fullPath = "Kotlination/Kotlin/Practice/getFileNameExample.kt"
+
    val res = pattern.matchEntire(str)?.groupValues
 
+
    print(res)
val regex = """(.+)/(.+)\.(.+)""".toRegex()
 
val matchResult = regex.matchEntire(fullPath)
 
 
 
if (matchResult != null) {
 
  val (directory, fileName, extension) = matchResult.destructured
 
  println("dir: $directory | fileName: $fileName | extension: $extension")
 
  // => dir: Kotlination/Kotlin/Practice | fileName: getFileNameExample | extension: kt
 
 
}
 
}
 +
</syntaxhighlight>ناتج تنفيذ هذه الشيفرة هو ما يلي:<syntaxhighlight lang="kotlin">
 +
[ABcDEFG12345DiFKGLSG938SDsFSd, 12345, 938]
  
}
 
 
</syntaxhighlight>
 
</syntaxhighlight>
==أنظر أيضًا==
+
 
* صفحة الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured/index|Destructured]]</code>.
+
==انظر أيضًا==
 +
* الدالة <code>[[Kotlin/kotlin.text/MatchResult/next|next()‎]]</code>: تعيد كائنًا من النوع <code>[[Kotlin/kotlin.text/MatchResult/index|MatchResult]]</code> يحوي ناتج المطابقة التالية [[Kotlin/kotlin.text/Regex/index|لتعبير نمطي]] محدد والذي يبدأ عند الفهرس الذي انتهت عنده آخر عملية مطابقة.
 +
* الخاصية <code>[[Kotlin/kotlin.text/MatchResult/destructured|MatchResult.destructured‎]]</code>: تمثل نسخةً من الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured|Destructured]]</code> توفّر مكونات عملية الإسناد بالتفكيك (destructuring assignment) التي تطبق على قيم المجموعة المُطابقة.
 +
*الخاصية <code>[[Kotlin/kotlin.text/MatchResult/groups|MatchResult.groups]]</code>: تمثل [[Kotlin/collections|مجموعةً]] (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] محدد.
 +
*الخاصية <code>[[Kotlin/kotlin.text/MatchResult/range|MatchResult.range]]</code>: تمثل مجال الفهارس الذي يحدد مكان مُطابقة [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] محدد في السلسلة النصية الأصلية.
 +
*الخاصية <code>[[Kotlin/kotlin.text/MatchResult/value|MatchResult.value]]</code>: تمثل [[Kotlin/String|السلسلة النصية]] المُدخلة، أو جزءًا منها، والمُطابقة [[Kotlin/kotlin.text/Regex/index|للتعبير النمطي]]. 
  
 
==مصادر==
 
==مصادر==
* [http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-match-result/destructured.html الخاصية MatchResult.groupValues‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-match-result/group-values.html صفحة الخاصية MatchResult.groupValues‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Property]]
 
[[تصنيف:Kotlin Property]]
 +
[[تصنيف:Kotlin Text]]
 +
[[تصنيف:Kotlin MatchResult]]

المراجعة الحالية بتاريخ 07:09، 30 أغسطس 2018

تمثل الخاصية MatchResult.groupValues قائمة بقيم المجموعة المفهرسة المتطابقة. حجم تلك القائمة يساوي groupCount + 1، إذ يكون groupCount عدد المجموعات المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسة بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق.

إن كانت المجموعة في التعبير النمطي اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فستساوي قيمةُ العنصر المقابل في المجموعة groupValues حينئذٍ سلسلةً نصيةً فارغةً.

البنية العامة

abstract val groupValues: List<String>

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

تعاد قائمة تضم جميع قيم المجموعة المُتطابقة لتعبير نمطي.

أمثلة

في الشيفرة التالية ننشِئ  تعبيرًا نمطيًا باسم regex باستخدام التابع Regex()‎، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج من str مجموعات النتائج عبر استدعاء الدالة matchEntire()‎. نستخدم بعدئذٍ الخاصية MatchResult.groupValues لاستخراج مجموعات النتائج:

fun main(args: Array<String>) {
    val pattern = Regex("[a-zA-Z]+([0-9]+)[a-zA-Z]+([0-9]+)[a-zA-Z]+")
    val str = "ABcDEFG12345DiFKGLSG938SDsFSd"

    val res = pattern.matchEntire(str)?.groupValues
    print(res)
}

ناتج تنفيذ هذه الشيفرة هو ما يلي:

[ABcDEFG12345DiFKGLSG938SDsFSd, 12345, 938]

انظر أيضًا

مصادر