چند مثال از عبارت‌های باقاعده (عبارت‌های منظم) در زبان جاوا

۸ دی ۱۳۹۵

عبارت باقاعده، که تحت عنوان regex (مخفف regular expression) نیز نامیده می‌شود در کامپیوتر و برنامه‌نویسی، به معنی تطبیق رشته در متن است؛ به بیانی دیگر عبارت‌های منظم ترکیب‌هایی خاص از حروف و علامت‌ها هستند که برای جستجو و مقایسه‌ی رشته‌ها استفاده می‌شوند. در این نوشته قصد دارم که چند عبارت منظم در زیبان جاوا را بررسی کنم.



مثال ۱. فرض کنید می‌خواهیم بررسی کنیم که یک رشته فقط شامل اعداد و حروف انگلیسی باشد؛ برای این کار استفاده از Regular Expression زیر مناسب به نظر می‌رسد:
if (myString.matches("^[A-Za-z0-9]+$")) {
     // string matches...
} else{
     //no match found!
}

(نماد ^ نشانگر شروع رشته و نماد $ نشانگر پایان رشته است؛ همچنین +[ ] به این معنی است که عبارت داخل کروشه می‌تواند یک یا چند بار تکرار شود.)
حال فرض کنید که می‌خواهیم علاوه بر اعداد و حروف انگلیسی، رشته شامل زیرخط (_)، فاصله ( )، نقطه (.) و خط تیره (-) نیز باشد. Regex به صورت زیر درمی‌آید:


 "^[A-Za-z0-9_ .-]+$"

مثال ۲. فرض کنید که می‌خواهیم یک url را مورد بررسی قرار دهیم که شامل آدرس خاصی باشد؛ برای مثال می‌خواهیم آدرس‌هایی که با /rest/file/ شروع شده و با upload/ خاتمه می‌یابند را تشخیص دهیم. Regex این کار را برای ما انجام می‌دهد:


String requestURL = ((HttpServletRequest) request).getRequestURL().toString();
if (requestURL.matches("^.*?(/rest/file/).*?(/upload)$")) {
     // requestURL matches...
} else {
     // no match found!
}

 (نماد ^ نشانگر شروع رشته و نماد $ نشانگر پایان رشته است؛ همچنین *. به این معنی تعداد صفر یا بیشتر کاراکتر می‌باشد.)

هیچ نظری موجود نیست: