عبارات باقاعده (Regex) برای متن
عبارات باقاعده: ابزار قدرتمند الگویابی متن — استخراج ایمیل، شماره، تاریخ و لینک با ماژول re پایتون
Regex چیست؟
عبارت باقاعده (Regular Expression) زبان کوچکی برای توصیف الگوهای متنی: «هر متنی که با @ تمام میشود» یا «هر عدد ۱۱ رقمی که با ۰۹ شروع میشود». ابزار قدیمی اما هنوز یکی از قدرتمندترین ابزارهای NLP!
الفبای Regex
| نماد | معنا | مثال |
|---|---|---|
| . | هر کاراکتر | «م.d» ← «مید»، «مدد» |
| \d | رقم | \d\d ← «۴۲» |
| \w | حرف/رقم | کلمات |
| \s | فاصله | — |
| * | صفر یا بیشتر | «اب*» ← «ا»، «اب»، «ابب» |
| + | یک یا بیشتر | «اب+» ← «اب»، «ابب» |
| ? | اختیاری (صفر/یک) | «رنگ?ها» ← «رنگ»، «رنگها» |
| {n,m} | تعداد دقیق | \d{11} ← شماره موبایل! |
| [...] | یکی از اینها | [۰-۹123] ← رقم فارسی یا انگلیسی |
| ^ و $ | شروع و پایان | ^«از» ← شروع با «از» |
مثالهای کاربردی
ایمیل: [\w.]+@[\w.]+\.\w+
موبایل: ۰?۹[۰-۹]{9}
تاریخ: \d{4}/\d{2}/\d{2}
لینک: https?://[\w./]+
توابع ماژول re
re.search(pattern, text)← اولین تطابقre.findall(pattern, text)← همه تطابقهاre.sub(pattern, replacement, text)← جایگزینیre.split(pattern, text)← تقسیم با الگو
Regex در NLP کجا استفاده میشود؟
- استخراج اطلاعات: ایمیل، تلفن، تاریخ، مبلغ از متن
- پاکسازی: حذف لینک/ایموجی/HTML از متن
- توکنسازی: تقسیم هوشمند متن
- اعتبارسنجی: فرمها (ایمیل معتبر است؟)
- جایگزینی هوشمند: مخفیسازی شماره کارتها
نکته: برای الگوهای ثابت (ایمیل، تاریخ)، Regex عالی است؛ اما برای الگوهای معنایی («نام افراد»)، به NER (مبحث بعدی) نیاز دارید. Regex الگو میبیند، NER معنا!
جمعبندی
- Regex = زبان توصیف الگوی متنی؛ قدیمی اما قدرتمند
- حروف خاص: \d رقم، + بیشتر، [] انتخاب، {} تعداد
- کاربردها: استخراج، پاکسازی، اعتبارسنجی
- برای معنا (نه الگو) سراغ NER بروید
این مبحث بخشی از دوره آموزش کامل پردازش زبان طبیعی (NLP) است.