اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

مرحبا، يُمكنك القيّام بالأمر بالسّطر التّالي:

$str=~ s/[^0-9]//g;

هذا السّطر يزيل جميع القيّم غير العدديّة، ويبقي فقط على القيم العدديّة فقط

مثال:

لدينا متغيّر $str يحوي نصوصا وأعدادا:

$str="hello 34 some text";

إذا أردنا استخراج القيمة 34 من هذا المتغيّر فكلّ ما علينا هوّ إضافة ذلك السّطر:

$str="hello 34 sometext";
$str=~ s/[^0-9]//g;
print $str;

بحيث سيكون المخرج:

34

 

  • 0
نشر

ستحتاج إلى تحويل المتغير ككل، مثال على ذلك:

% perl -e 'print "5.45" + 0.1;'
5.55

وفي حالة كان يتوفر على أحرف مع أرقام، يمكنك استعمال هذه الطريقة :

my $var1 = "123abc";
print $var1 + 0;

لنحصل على النتيجة:

123

ولملاحظة الفرق، إليك هذا المثال الثالث:

my $var2 = "abc123";
print $var2 + 0;

سنحصل على :

0

وهذا جدول حالات التحويلات التي من الممكن مصادفتها:

Original   As string   As number

  42         "42"        42
  0.3        "0.3"       0.3
 "42"        "42"        42
 "0.3"       "0.3"       0.3

 "4z"        "4z"        4        (*)
 "4z3"       "4z3"       4        (*)
 "0.3y9"     "0.3y9"     0.3      (*)
 "xyz"       "xyz"       0        (*)
 ""          ""          0        (*)
 "23\n"      "23\n"      23

المزيد عن الموضوع

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...