// البحث في النص وتقسيمه ووصله وقصه والاستبدال فيه.
استورد std.io.println;
استورد std.text.number;
استورد std.text.search;
استورد std.text.transform;
عرف الرئيسية(): عدد {
دع الخام: نص = " أحمر,أخضر,أزرق ";
دع النظيف: نص = قص_النص(&الخام);
دع الفاصلة: نص = ",";
دع الأجزاء: متجه نص = قسم_النص(&النظيف, &الفاصلة);
اطبع_سطر(طبيعي_إلى_نص(الطول(الأجزاء) مثل طبيعي));
دع الشرطة_المائلة: نص = " / ";
اطبع_سطر(صل_النصوص(&الأجزاء, &الشرطة_المائلة));
دع الأخضر: نص = "أخضر";
إذا (يحتوي_نصا(&النظيف, &الأخضر)) { اطبع_سطر("وُجد الأخضر"); };
طابق ابحث_نصا(&النظيف, &الأخضر) مع
| اختياري.موجود(الموضع) -> { اطبع_سطر(طبيعي_إلى_نص(الموضع)); }
| اختياري.لا_شيء -> { اطبع_سطر("غير موجود"); };
دع الأزرق: نص = "أزرق";
دع الكحلي: نص = "كحلي";
اطبع_سطر(استبدل_في_النص(&النظيف, &الأزرق, &الكحلي));
أرجع 0;
}// Searching, splitting, joining, trimming and replacing text.
import std.io.println;
import std.text.number;
import std.text.search;
import std.text.transform;
def main(): int {
let raw: string = " red,green,blue ";
let clean: string = trim(&raw);
let comma: string = ",";
let parts: vector string = split(&clean, &comma);
println(uint_to_text(length(parts) as uint));
let slash: string = " / ";
println(join(&parts, &slash));
let green: string = "green";
if (contains(&clean, &green)) { println("found green"); };
match find(&clean, &green) with
| option.some(index) -> { println(uint_to_text(index)); }
| option.none -> { println("missing"); };
let blue: string = "blue";
let navy: string = "navy";
println(replace(&clean, &blue, &navy));
return 0;
}
التشغيل
بالمفسر، دون ترجمة:
./build/sultanc run examples/ar/strings/search_and_replace.snأو ترجمه إلى ملف تنفيذي:
./build/sultanc examples/ar/strings/search_and_replace.sn -o build/example && ./build/example