توابع sscanf() پایتون

مثال

پارس کردن رشته:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// نمایش نوع و مقدار
var_dump($age,$weight);
؟>

بندوبست

تعریف و کاربرد

توابع sscanf() داده‌های ورودی از رشته‌ها را بر اساس فرمت مشخص می‌کند. توابع sscanf() داده‌های ورودی از رشته‌ها را بر اساس رشته فرمت به متغیرها پارس می‌کند.

اگر تنها دو پارامتر به این تابع ارسال شود، داده‌ها به صورت آرایه بازگردانده می‌شوند. در غیر این صورت، اگر پارامترهای اضافی ارسال شوند، داده‌های پارس شده در این پارامترها ذخیره می‌شوند. اگر تعداد کاراکترهای جداکننده بیشتر از تعداد متغیرهایی که آنها را شامل می‌شوند باشد، خطا رخ می‌دهد. اما اگر تعداد کاراکترهای جداکننده کمتر از تعداد متغیرهایی که آنها را شامل می‌شوند باشد، متغیرهای اضافی NULL را شامل می‌شوند.

دستگاه‌های مرتبط:

  • printf() - یک رشته فرمت شده را چاپ می‌کند
  • sprintf() - یک رشته فرمت شده را به متغیر نوشته می‌کند

نحوه استفاده

sscanf(string,format,arg1,arg2,arg++)
پارامتر توضیحات
string ضروری. مقدار رشته‌ای که باید خوانده شود را مشخص میکند.
format

ضروری. مقدار فرمت مورد استفاده را مشخص میکند.

ممکنه مقدار فرمت:

  • %% - بازگشت یک درصد %
  • %c - کاراکتر مربوط به کد ASCII
  • %d - عدد دسیمال با علامت مثبت و منفی (عدد منفی، 0، عدد مثبت)
  • %e - استفاده از شمارش علمی با حروف کوچک (مثلاً 1.2e+2)
  • 誒دد دسیمال بدون علامت مثبت (بزرگتر یا برابر با 0)
  • %f - عدد شناور
  • %o - عدد هگزادسیمال
  • %s - رشته
  • %x - سانچاری قومی (حرف کوچک)
  • %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
  • ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
  • - (左调整变量值)
  • [0-9] (规定变量值的最小宽度)
  • .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个上述的格式值,它们必须按照上面的顺序使用。

arg1 可选。存储数据的第一个变量。
arg2 可选。存储数据的第二个变量。
arg++ 可选。存储数据的第三、四个变量,依此类推。

技术细节

返回值: 如果只向该函数传递两个参数,数据将以数组的形式返回。否则,如果传递了额外的参数,那么被解析的数据会存储在这些参数中。如果区分符的数目大于包含它们的变量的数目,则会发生错误。不过,如果区分符的数目小于包含它们的变量的数目,则额外的变量包含 NULL。
PHP ورژن: 4.0.1+

بیشتر مثال

مثال 1

فرمت کی قیمتیں استعمال کریں %s، %d اور %c:

<?php
$ریچ = " اگر 4 کو 2 سے تقسیم کریں تو آپ 2 حاصل کریں گے";
$فرمت = اسکن_آر($ریچ،"%s %s %s %d %s %d %s %s %c");
پرنٹ_آر($فرمت);
؟>

بندوبست