الدالة Regex.findAll()‎ في لغة Kotlin

من موسوعة حسوب
< Kotlin‏ | kotlin.text‏ | Regex
مراجعة 07:37، 22 أغسطس 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '==القيمة المُعادة==' ب'==القيمة المعادة==')
اذهب إلى التنقل اذهب إلى البحث

تعيد الدالةfindAll()‎ كل المطابقات للتعبير النمطي الذي استُدعيت عبره في الوسيط المُمرّر input،بداية من الفهرس المحدد بالوسيط startIndex.

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

actual fun findAll(
    input: CharSequence, 
    startIndex: Int = 0
): Sequence<MatchResult>

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

كائن من النوع Sequence<MatchResult>‎.

أمثلة

استخدام التابع findAll()‎

ينشِئ التابع Regex() في الشيفرة الآتية تعبيرًا نمطيًا باسم reg لمطابقة التعابير العددية، ثم يستدعي عبره الدالة findAll()‎ ويحيل القيمة المعادة إلى المتغير matchResults، ثم ينشئ كائن من النوع Appendable عبر الدالة StringBuilder()‎،ثم يطبع الناتج بعد تجميع النتائج في الحلقة التكرارية for:

fun main(args: Array<String>) {
val reg = Regex("""-?\d+(\.\d+)?""") // يطابق هذا التعبير النمطي التعابير العددية، مثل: 45

val matchResults = reg.findAll("ab12cd34ef")
    
val result = StringBuilder()
    
for (matchResult in matchResults) {
    result.append(matchResult.value + " ")
}

println(result) // => 12 34
}

أنظر أيضًا

  •  matchEntire()‎: إن كانت جميع حروف الوسيط الممرّر input تطابق التعبير النمطي الذي استُدعيت عبره، فإن الدالةmatchEntire()‎ تعيد نسخة من الصنف MatchResult تحتوي الكائن المُمرّر نفسه، وإلا فستعيد القيمة المعدومة null.
  • الخاصية pattern: تعيد السلسلة النصية النمطية (pattern string) التي استُخدمت في إنشاء التعبير النمطي الذي استُدعيت عبره.
  • الخاصية options: تعبر عن مجموعة الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعيت عبره.

مصادر