PDA

View Full Version : سوال: عبارات با قاعده



soft-c
جمعه 12 فروردین 1390, 12:16 عصر
ipRegExp := '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b';

if TRegEx.IsMatch(paramstr(1), ipRegExp) then
Writeln('Text DOES match the regular expression')
کد مورد نظر در رابطه با عبارات با قاعده در دلفی است .(در مورد مشخص کردن رنج ip است )
اگر می شود یک توضیحی در مورد عبارت بدهید مخصوصا آنجا که [9-0]دارد .
اگر می شود یک توضیح کلی هم در باره ی ساختار عبارات با قاعده بدهید .
تشکر.

BORHAN TEC
جمعه 12 فروردین 1390, 14:10 عصر
برای کسب اطلاعات بیشتر در رابطه با عبارات با قاعده به آدرس زیر مراجعه کنید که شامل توضیحات کاملی است:
http://en.wikipedia.org/wiki/Regular_expression

vcldeveloper
جمعه 12 فروردین 1390, 19:04 عصر
عبارات با قاعده روشی برای جستجوی یک الگو در داخل یک متن، و در صورت نیاز، تعویض آن الگو با متنی دیگه، هستند. برای نوشتن این عبارات از یک زبان خاص استفاده میشه، که برای موتورهای عبارات با قاعده مفهوم هست. اینکه تک تک اون کارکترها چه معنی داره، خودش میشه یک کتاب درباره عبارات با قاعده. در اون کدی که قرار دادید، سعی شده یک الگو برای آدرس های IP در نظر گرفته بشه، تا بشه این الگو را در متن داده شده، جستجو کرد. اون عبارت [9-0] هم داره یک مجموعه تعریف میکنه که اعضاء اش اعداد صفر تا 9 هستند. اون عبارت برای موتور عبارت با قاعده یعنی در متن داده شده، در محل تعریف اون مجموعه، باید یکی از کارکترهای این مجموعه وجود داشته باشه، وگرنه متن مورد نظر مطابق الگو نیست. بر طبق این الگوی شما، باید آدرس IP جدای از کلمات قبل و بعد خودش باشه، و به اونها نچسبیده باشه. همچنین باید به صورت 25 + یک عدد از صفر تا 5، یا 2 + یک عدد از صفر تا 4 + یک عدد از صفر تا 9، یا 01 + یک عدد اختیاری از 0 تا 9 + یک عدد اختیاری از صفر تا 9؛ شروع بشه. برای بررسی ادامه کد، بهتره خودتون یک کتاب آموزشی تهیه کنید.