ویژگی تصویر

عبارات با قاعده (RegEX) در Java

  /  Java   /  عبارات با قاعده در جاوا
بنر تبلیغاتی الف
زبان برنامه نویسی Java (جاوا)

در این بخش به بررسی عبارات با قاعده در جاوا می پردازیم، عبارات با قاعده (Regular Expressions یا Regex) ابزاری بسیار قدرتمند در پردازش متون هستند که امکان جستجو، تطبیق و ویرایش داده‌های متنی را با الگوهای خاص فراهم می‌کنند. این ابزارها در زبان‌های برنامه‌نویسی مختلف از جمله Java، به برنامه‌نویسان اجازه می‌دهند که به‌راحتی رشته‌های متنی پیچیده را جستجو کنند و آن‌ها را با الگوهای مشخص تطبیق دهند. از جمله کاربردهای رایج Regex در برنامه‌نویسی می‌توان به اعتبارسنجی ایمیل‌ها، شماره تلفن‌ها، جستجوی الگوهای خاص در فایل‌ها، و تبدیل داده‌های متنی اشاره کرد.

در زبان Java، کتابخانه java.util.regex امکانات کاملی برای استفاده از عبارات با قاعده فراهم می‌کند. این کتابخانه به شما این امکان را می‌دهد که الگوهای پیچیده‌ای را در رشته‌های متنی جستجو کرده و آن‌ها را بر اساس نیاز خود پردازش کنید. در این مقاله، به بررسی نحوه استفاده از عبارات با قاعده در Java پرداخته و با مثال‌های مختلف، نحوه کاربرد آن‌ها را توضیح خواهیم داد.

معرفی عبارات با قاعده (Regex) در Java

در Java، برای کار با عبارات با قاعده، کلاس‌های اصلی Pattern و Matcher وجود دارند. کلاس Pattern به‌عنوان نماینده یک الگوی Regex در نظر گرفته می‌شود و کلاس Matcher وظیفه تطبیق این الگوها را با رشته‌های ورودی برعهده دارد. برای شروع کار با Regex، ابتدا باید یک الگو (Pattern) تعریف کرده و سپس آن را با استفاده از یک شی از نوع Matcher بر روی داده‌ها اعمال کنیم.

نحوه تعریف الگو در Java

الگوهای عبارات با قاعده در Java معمولاً با استفاده از متد Pattern.compile() تعریف می‌شوند. این متد یک رشته حاوی الگوی مورد نظر را به‌عنوان ورودی دریافت کرده و آن را به یک شیء Pattern تبدیل می‌کند. این شیء می‌تواند برای جستجو یا تطبیق با رشته‌های دیگر استفاده شود.

تماشا در حالت تمام صفحه

در این مثال، الگوی "a*b" نشان‌دهنده یک رشته است که ممکن است شامل تعداد نامحدودی از حروف 'a' و در نهایت یک حرف 'b' باشد. با اجرای این برنامه، چون رشته ورودی "aaab" این الگو را برآورده می‌کند، خروجی true خواهد بود.

استفاده از متدهای مختلف برای تطبیق و جستجو

کلاس Matcher دارای متدهای مختلفی برای جستجو و تطبیق الگوها است. برخی از این متدها عبارتند از:

  • matches(): بررسی می‌کند که آیا رشته ورودی دقیقاً با الگو تطبیق دارد یا خیر.
  • find(): جستجو می‌کند تا ببیند که آیا الگو در رشته ورودی وجود دارد یا خیر.
  • group(): زمانی که تطبیق انجام شده باشد، می‌توان از این متد برای دسترسی به رشته‌ای که با الگو تطبیق داشته است استفاده کرد.
تماشا در حالت تمام صفحه

در این مثال، الگوی "\\d+" برای جستجوی اعداد در رشته ورودی به‌کار رفته است. با اجرای این برنامه، عدد 123 از داخل رشته استخراج خواهد شد.

اجزای اصلی الگوهای Regex

برای نوشتن عبارات با قاعده مؤثر و قدرتمند، آشنایی با اجزای مختلف الگوها ضروری است. در این بخش، به بررسی برخی از مهم‌ترین اجزای الگوهای Regex خواهیم پرداخت.

حروف خاص و متا-کاراکترها

  • .: هر کاراکتری به‌جز کاراکتر جدید (newline).
  • ^: نشان‌دهنده شروع رشته.
  • $: نشان‌دهنده انتهای رشته.
  • *: تکرار صفر یا بیشتر از الگوی قبلی.
  • +: تکرار یک یا بیشتر از الگوی قبلی.
  • ?: الگوی قبلی یک یا صفر بار تکرار می‌شود.
  • |: یا (OR) برای جستجوی چند الگوی مختلف.
مثال:
تماشا در حالت تمام صفحه

در این مثال، الگوی "^a.b$" به این معنی است که رشته باید با حرف 'a' شروع شود و با حرف 'b' پایان یابد و هر چیزی در بین این دو حرف می‌تواند باشد.

گروه‌بندی و انتخاب‌ها

یکی از ویژگی‌های مفید عبارات با قاعده، امکان گروه‌بندی و انتخاب‌های شرطی است. با استفاده از پرانتز می‌توان بخش‌هایی از الگو را گروه‌بندی کرده و سپس از آن‌ها در سایر قسمت‌های برنامه استفاده کرد. همچنین با استفاده از علامت | می‌توان چندین الگو را به‌طور هم‌زمان جستجو کرد.

تماشا در حالت تمام صفحه

در این مثال، اگر رشته ورودی حاوی یکی از دو الگوی "abc" یا "def" باشد، از آن استفاده می‌شود.

استفاده از کاراکترهای خاص

  • \\d: هر رقم عددی (معادل [0-9]).
  • \\w: هر حرف الفبایی، عدد یا آندرلاین (معادل [a-zA-Z0-9_]).
  • \\s: هر فضای سفید (شامل فضا، تب و خط جدید).
  • \\b: مرز کلمه.
مثال:
تماشا در حالت تمام صفحه

در این مثال، الگوی "\\d{2,4}" برای جستجو در میان اعداد با طول ۲ تا ۴ رقم استفاده شده است.

عبارات با قاعده (Regex) ابزارهای قدرتمند و بسیار مفیدی برای پردازش متون در برنامه‌نویسی هستند. زبان Java با کتابخانه java.util.regex امکانات کاملی برای استفاده از این ابزار فراهم کرده است. با استفاده از Regex، برنامه‌نویسان می‌توانند الگوهای پیچیده‌ای را در رشته‌های متنی جستجو کنند، تطبیق دهند و داده‌ها را پردازش کنند. در این مقاله، به بررسی نحوه تعریف و استفاده از الگوهای Regex، اجزای مختلف آن، و کاربردهای رایج آن در زبان Java پرداخته شد. این ابزار به شما این امکان را می‌دهد که به‌طور مؤثرتر با داده‌های متنی کار کنید و راه‌حل‌های بهینه‌تری برای مشکلات مختلف پردازش داده‌ها پیدا کنید.

منابع

  1. Oracle Documentation: Regular Expressions in Java Oracle
  2. Java Regular Expressions TutorialsPoint

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج