الفرق بين المراجعتين ل"Ruby/String/tr"
جميل-بيلوني (نقاش | مساهمات) (إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".) |
جميل-بيلوني (نقاش | مساهمات) (إضافة المحتوى) |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby String]] | [[تصنيف: Ruby String]] | ||
− | يعيد التابع <code>tr</code> | + | يعيد التابع <code>tr</code> نسخة عن السلسلة النصية المُعطاة مع استبدال مجموعة محارف محدَّدة فيها بالمحارف المقابلة المعطاة. |
==البنية العامة== | ==البنية العامة== | ||
− | <syntaxhighlight lang="ruby">tr(from_str, to_str) => new_str</syntaxhighlight> | + | <syntaxhighlight lang="ruby">tr(from_str, to_str) => new_str</syntaxhighlight>يعيد التابع <code>tr</code> نسخة عن السلسلة النصية المُعطاة مع استبدال مجموعة حروف السلسلة <code>from_str</code> بالحروف المقابلة لها فى السلسلة <code>to_str</code>. إذا كانت السلسلة <code>to_str</code> أقصر من السلسلة <code>from_str</code>، فسيكرر الحرف الأخير فيها حتى تصبحان متساويتين من أجل الحفاظ على التنسيق. |
− | ==القيمة المعادة== | + | يمكن أن تحتوي كلا السلسلتين <code>from_str</code> و <code>to_str</code> على الصيغة <code>c1-c2</code>، والتي تُستعمَل للإشارة إلى مجال محدد من الحروف. |
− | + | ||
+ | يشير الرمز <code>^</code> فى بداية السلسلة <code>from_str</code> إلى جميع اشتمال جميع المحارف باستثناء تلك المحددة. | ||
+ | |||
+ | يُستعمل الخط المائل العكسي <code>\</code> لتهريب الرمزين <code>^</code> و <code>-</code>، ولا يتم حسابه إلا إذا وقع في نهاية مجال، أو فى نهاية كل من السلسلتين <code>from_str</code> و <code>to_str</code>. | ||
+ | |||
+ | == المعاملات == | ||
+ | |||
+ | === <code>from_str</code> === | ||
+ | سلسلة نصية تحدد مجموعة المحارف الموجودة في نسخة السلسلة المُعطاة والمُراد استبدالها بالمحارف <code>to_str</code> المقابلة. | ||
+ | |||
+ | === <code>to_str</code> === | ||
+ | سلسلة نصية تحوي المحارف المقابلة التي ستحل مكان المحارف <code>from_str</code> في نسخة السلسلة المُعطاة. | ||
+ | |||
+ | == القيمة المعادة == | ||
+ | تُعاد نسخة عن السلسلة النصية المُعطاة مع استبدال مجموعة محارف السلسلة <code>from_str</code> بالمحارف المقابلة لها في السلسلة <code>to_str</code>. | ||
==أمثلة== | ==أمثلة== | ||
− | + | أمثلة على استعمال التابع <code>tr</code>: | |
<syntaxhighlight lang="ruby">"hello".tr('el', 'ip') #=> "hippo" | <syntaxhighlight lang="ruby">"hello".tr('el', 'ip') #=> "hippo" | ||
"hello".tr('aeiou', '*') #=> "h*ll*" | "hello".tr('aeiou', '*') #=> "h*ll*" | ||
− | "hello".tr('aeiou', 'AA*') #=> "hAll*"</syntaxhighlight> | + | "hello".tr('aeiou', 'AA*') #=> "hAll*" |
+ | |||
+ | "hello".tr('a-y', 'b-z') #=> "ifmmp" | ||
+ | "hello".tr('^aeiou', '*') #=> "*e**o" | ||
+ | |||
+ | "hello^world".tr("\\^aeiou", "*") #=> "h*ll**w*rld" | ||
+ | "hello-world".tr("a\\-eo", "*") #=> "h*ll**w*rld" | ||
+ | |||
+ | "hello\r\nworld".tr("\r", "") #=> "hello\nworld" | ||
+ | "hello\r\nworld".tr("\\r", "") #=> "hello\r\nwold" | ||
+ | "hello\r\nworld".tr("\\\r", "") #=> "hello\nworld" | ||
+ | |||
+ | "X['\\b']".tr("X\\", "") #=> "['b']" | ||
+ | "X['\\b']".tr("X-\\]", "") #=> "'b'"</syntaxhighlight> | ||
+ | |||
+ | ==انظر أيضًا== | ||
+ | * التابع <code>[[Ruby/String/replace|replace]]</code>: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه. | ||
− | + | * التابع <code>[[Ruby/String/tr-21|tr!]]</code>: يستبدل مجموعة محارف محدَّدة في السلسلة النصية المُعطاة بمحارف مقابلة لها. | |
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-tr قسم التابع tr في الصنف String في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/String.html#method-i-tr قسم التابع tr في الصنف String في توثيق روبي الرسمي.] |
مراجعة 13:16، 15 ديسمبر 2018
يعيد التابع tr
نسخة عن السلسلة النصية المُعطاة مع استبدال مجموعة محارف محدَّدة فيها بالمحارف المقابلة المعطاة.
البنية العامة
tr(from_str, to_str) => new_str
يعيد التابع tr
نسخة عن السلسلة النصية المُعطاة مع استبدال مجموعة حروف السلسلة from_str
بالحروف المقابلة لها فى السلسلة to_str
. إذا كانت السلسلة to_str
أقصر من السلسلة from_str
، فسيكرر الحرف الأخير فيها حتى تصبحان متساويتين من أجل الحفاظ على التنسيق.
يمكن أن تحتوي كلا السلسلتين from_str
و to_str
على الصيغة c1-c2
، والتي تُستعمَل للإشارة إلى مجال محدد من الحروف.
يشير الرمز ^
فى بداية السلسلة from_str
إلى جميع اشتمال جميع المحارف باستثناء تلك المحددة.
يُستعمل الخط المائل العكسي \
لتهريب الرمزين ^
و -
، ولا يتم حسابه إلا إذا وقع في نهاية مجال، أو فى نهاية كل من السلسلتين from_str
و to_str
.
المعاملات
from_str
سلسلة نصية تحدد مجموعة المحارف الموجودة في نسخة السلسلة المُعطاة والمُراد استبدالها بالمحارف to_str
المقابلة.
to_str
سلسلة نصية تحوي المحارف المقابلة التي ستحل مكان المحارف from_str
في نسخة السلسلة المُعطاة.
القيمة المعادة
تُعاد نسخة عن السلسلة النصية المُعطاة مع استبدال مجموعة محارف السلسلة from_str
بالمحارف المقابلة لها في السلسلة to_str
.
أمثلة
أمثلة على استعمال التابع tr
:
"hello".tr('el', 'ip') #=> "hippo"
"hello".tr('aeiou', '*') #=> "h*ll*"
"hello".tr('aeiou', 'AA*') #=> "hAll*"
"hello".tr('a-y', 'b-z') #=> "ifmmp"
"hello".tr('^aeiou', '*') #=> "*e**o"
"hello^world".tr("\\^aeiou", "*") #=> "h*ll**w*rld"
"hello-world".tr("a\\-eo", "*") #=> "h*ll**w*rld"
"hello\r\nworld".tr("\r", "") #=> "hello\nworld"
"hello\r\nworld".tr("\\r", "") #=> "hello\r\nwold"
"hello\r\nworld".tr("\\\r", "") #=> "hello\nworld"
"X['\\b']".tr("X\\", "") #=> "['b']"
"X['\\b']".tr("X-\\]", "") #=> "'b'"
انظر أيضًا
- التابع
replace
: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.
- التابع
tr!
: يستبدل مجموعة محارف محدَّدة في السلسلة النصية المُعطاة بمحارف مقابلة لها.