شناسایی اعداد از متن یونیکد

۱ سال پیش(به روز شده در ۵ ماه پیش) پی اچ پی(PHP)(توابع) ۰

روشهای رایج همگی جهت شناسایی اعداد یک رشته روش زیر را پیشنهاد میکنند:

preg_match_all('!\d+!', $str, $matches);

اما روش فوق برای رشته های یونیکد مثلا UTF-8 جواب نمیدهد و نتیجه درستی ندارد و کافیست امتحان کنید. اما تابع زیر برای هر نوع رشته ای، اعداد را پیدا کرده و بصورت آرایه بر میگرداند.

function unicodeStrDigits($str) {
    $arr = array();
    $sub = '';
    for ($i = 0; $i < strlen($str); $i++) { 
        if (is_numeric($str[$i])) {
            $sub .= $str[$i];
            continue;
        } else {
            if ($sub) {
                array_push($arr, $sub);
                $sub = '';
            }
        }
    }
 
    if ($sub) {
        array_push($arr, $sub); 
    }
 
    return $arr;
}

روش دیگر:

$res = array();
$str = 'test 1234 555 2.7 string ..... 2.2 3.3';
$str = preg_replace("/[^0-9\.]/", " ", $str);
$str = trim(preg_replace('/\s+/u', ' ', $str));
$arr = explode(' ', $str);
for ($i = 0; $i < count($arr); $i++) {
    if (is_numeric($arr[$i])) {
        $res[] = $arr[$i];
    }
}
print_r($res); //Array ( [0] => 1234 [1] => 555 [2] => 2.7 [3] => 2.2 [4] => 3.3 )

اطلاعات بیشتر

برچسبها

digits php تابع

صفحات پیشنهادی

تشخیص حجم فایل با استفاده از فرمت ورودی...

این تابع حجم فایل را گرفته و سپس با توجه به فرمت مشخص شده خروجی را مشخص خواهد کرد. آرگومان‌های ورودی کاملا واضح هستند اما باید گفت که مقدار precision$ قسمت اعشار خروجی را مشخص می کند که به طور پی...

تابع تبدیل حجم فایل به فرمتهای مختلف...

تابع زیر حجم فایل را بررسی نموده و با توجه به اندازه آن , حجم را با فرمت مناسب نمایش می دهد. function formatFileSize( $size ) { $file_size = $size; $i = 0;   $name = array( 'byte', 'kB',...

تابع چک کردن حجم رشته ورودی و محاسبه حجم آن...

تابع ()valid_size مقدار رشته ورودی را محاسبه کرده و سپس بررسی می کند که کمتر و برابر از رشته ورودی است که در صورت درستی شرط مقدار طول رشته به کیلوبایت و در غیر اینصورت مقدار False را بر می گرداند. fun...

تابع تبدیل تاریخ میلادی به شمسی...

تابع تبدیل تاریخ میلادی به شمسی. دو تابع اولیه مربوط مشخص کردن کبیسه بودن سالهای شمسی و میلادی است......

نظر

نظری ثبت نشده است.
captcha image reload