سلام

امروز در این ساعت می خواهم قطعه کدی از Regex را برای شما معرفی کنم که برای بدست آوردنش آزمایش و آزمون خطا های زیادی کردم چون با توجه به جستجو های زیادی که انجام دادم نتوانستم به پاسخ دلخواهم برسم.
اما پیش از آن یک مقدمه و توضیحی درباره RegEx یا Regular Expression خواهم داد.

مقدمه

Regular Expression چیست؟ Regular Expression را به اختصار Regex یا گاهی Regexp نیز می گویند که جهت بررسی قواعد کارکتری است که برنامه نویسی به توابع مربوط به آن می دهد تا بتواند یک سری رشته های منظم را از نا منظم جدا کند برای نمونه بیرون آوردن آدرس آی پی از یک رشته کلمات یا پاراگراف که دارای شماره های گوناگون مانند شماره تماس، کد پستی و یا مختصات جغرافیایی استفاده می شود.
این نوع توابع در تکنولوژی های مختلف و ویرایش های تازه زبان های برنامه نویسی گوناگون نیز وجود دارد و برنامه نویسان می توانند استفاده کنند. فناوری هایی مانند .NET و زبان های برنامه نویسی ای مانند PHP و ASP

رشته کد مورد نظر

((([۲-۲]{۱,۱}[۰-۴]{۱,۱}[۰-۹]{۱,۱})|([۲-۲]{۱,۱}[۵-۵]{۱,۱}[۰-۵]{۱,۱})|([۱-۱]{۱,۱}[۰-۹]{۲,۲})|([۱-۹]{۱,۱}[۰-۹]{۱,۱})|([۱-۹]{۱,۱}))(\.))((([۲-۲]{۱,۱}[۰-۴]{۱,۱}[۰-۹]{۱,۱})|([۲-۲]{۱,۱}[۵-۵]{۱,۱}[۰-۵]{۱,۱})|([۱-۱]{۱,۱}[۰-۹]{۲,۲})|([۱-۹]{۱,۱}[۰-۹]{۱,۱})|([۰-۹]{۱,۱}))(\.))((([۲-۲]{۱,۱}[۰-۴]{۱,۱}[۰-۹]{۱,۱})|([۲-۲]{۱,۱}[۵-۵]{۱,۱}[۰-۵]{۱,۱})|([۱-۱]{۱,۱}[۰-۹]{۲,۲})|([۱-۹]{۱,۱}[۰-۹]{۱,۱})|([۰-۹]{۱,۱}))(\.))((([۲-۲]{۱,۱}[۰-۴]{۱,۱}[۰-۹]{۱,۱})|([۲-۲]{۱,۱}[۵-۵]{۱,۱}[۰-۵]{۱,۱})|([۱-۱]{۱,۱}[۰-۹]{۲,۲})|([۱-۹]{۱,۱}[۰-۹]{۱,۱})|([۱-۹]{۱,۱})))

نمونه کد PHP

$regex="((([2-2]{1,1}[0-4]{1,1}[0-9]{1,1})|([2-2]{1,1}[5-5]{1,1}[0-5]{1,1})|([1-1]{1,1}[0-9]{2,2})|([1-9]{1,1}[0-9]{1,1})|([1-9]{1,1}))(\.))((([2-2]{1,1}[0-4]{1,1}[0-9]{1,1})|([2-2]{1,1}[5-5]{1,1}[0-5]{1,1})|([1-1]{1,1}[0-9]{2,2})|([1-9]{1,1}[0-9]{1,1})|([0-9]{1,1}))(\.))((([2-2]{1,1}[0-4]{1,1}[0-9]{1,1})|([2-2]{1,1}[5-5]{1,1}[0-5]{1,1})|([1-1]{1,1}[0-9]{2,2})|([1-9]{1,1}[0-9]{1,1})|([0-9]{1,1}))(\.))((([2-2]{1,1}[0-4]{1,1}[0-9]{1,1})|([2-2]{1,1}[5-5]{1,1}[0-5]{1,1})|([1-1]{1,1}[0-9]{2,2})|([1-9]{1,1}[0-9]{1,1})|([1-9]{1,1})))";
$ipaddress= "192.168.0.0";

<?php 
       if(preg_match("/^$regex$/", $ipaddress)) 
       { 
               return true; 
       } 
?>

این کد را آزمایش کنید، بهره و لذت ببرید چون برای درست کردنش کلی زحمت کشیدم.

By Saeb Khanzadeh

Programmer and Computer Engineer