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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.groupValues</code> في لغة Kotlin}}</noinclude> الخاصية <code>groupValues</code> تعيد نسخة...')
 
سطر 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>groupValues</code> [[Kotlin/List|لائحة]] تضم مجموعة المُطابقات  <nowiki/>[[Kotlin/kotlin.text/Regex/index|للتعبير النمطي]]. حجم تلك [[Kotlin/List|اللائحة]] يساوي <code>groupCount + 1،</code> حيث<code>groupCount</code> هو عدد المجموعات المطابَقة في  <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]]. تلك المجموعات مُفهرسة من 1 حتى <code>groupCount،</code> والمجموعة ذات الفهرس <code>0</code> توافق المطابقة الكلية.
 +
 
 +
إن كانت المجموعة في  <nowiki/>[[Kotlin/kotlin.text/Regex/index|التعبير النمطي]]<nowiki/>اختيارية ولم يكن هناك أي تطابق، فإن العنصر المقابل في [[Kotlin/List|اللائحة]] <code>groupValues</code> هو [[Kotlin/List|اللائحة]] الفارغة.
 
==البنية العامة==
 
==البنية العامة==
 
<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>===
 
===استخدام الخاصية <code>groupValues</code>===
ينشِئ التابع <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">
+
ينشِئ التابع <code>Regex()‎</code> في الشيفرة الآتية تعبيرًا نمطيًا باسم <code>regex</code>، ثم نعرّف سلسلة نصية باسم <code>str</code>، ثم نستخرج من <code>str</code>  مجموعات النتائج عبر استدعاء الدالة<code>matchEntire()‎</code>، ثم نستخدم الخاصية <code>groupValues</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>
 
==أنظر أيضًا==
 
==أنظر أيضًا==
 
* صفحة الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured/index|Destructured]]</code>.
 
* صفحة الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured/index|Destructured]]</code>.
 +
* الخاصية <code>MatchResult.destructured‎</code>: الخاصية <code>destructured‎</code> تعيد نسخة من الصنف <code>MatchResult.Destructured،</code> والتي توفّر مركبات لتفكيك قيم المجموعة المُطابقة. المركبة الأولى تقابل قيمة المجموعة المُطابقَة الأولى، والمركبة الثانية تقابل الثانية، وهكذا دواليك.
  
 
==مصادر==
 
==مصادر==
* [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]]

مراجعة 21:53، 6 يوليو 2018

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

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

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

abstract val groupValues: List<String>

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

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

أمثلة

استخدام الخاصية groupValues

ينشِئ التابع Regex()‎ في الشيفرة الآتية تعبيرًا نمطيًا باسم regex، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج من str مجموعات النتائج عبر استدعاء الدالةmatchEntire()‎، ثم نستخدم الخاصية 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)
}

أنظر أيضًا

  • صفحة الصنف Destructured.
  • الخاصية MatchResult.destructured‎: الخاصية destructured‎ تعيد نسخة من الصنف MatchResult.Destructured، والتي توفّر مركبات لتفكيك قيم المجموعة المُطابقة. المركبة الأولى تقابل قيمة المجموعة المُطابقَة الأولى، والمركبة الثانية تقابل الثانية، وهكذا دواليك.

مصادر