ریجیکس

آزاد دائرۃ المعارف، ویکیپیڈیا سے
(ریگیولر ایکسپریشن سے رجوع مکرر)

ریگیولر ایکسپریشن کے سلسلہ میں ویکیپیڈیا معاونت صفحہ یہاں ملاحظہ فرمائیں۔

ریگیولر ایکسپریشن (?<=\.) {2,}(?=[A-Z])
اپر کیس حروف سے پہلے اور (.) پیریڈ کے بعد واقع ہونے والے کم سے کم دو سپیس کو میچ کرتا ہے جیسے تصویر میں نشان زد کیا گیا ہے۔

ریگیولر ایکسپریشن، ریجیکس یا باقاعدہ اظہار (انگریزی: Regular expression) نظریاتی کمپیوٹر سائنس کی فارمل لینگویج تھیوری میں مختلف زبانوں کی زمرہ بندی کی گئی ہے جو مختلف شرائط پر پورے اترتے ہیں۔ زبان کی تعریف ریاضی، کمپیوٹر سائنس اور لسانیات میں کچھ یوں کی جاتی ہے کہ زبان مختلف علامات (حروف و رموز) کے مجموعے (مثلاً الفاظ) کا مجموعہ (مثلاً فقرے) ہوتا ہے جو بعض قواعد (مثلاً نحو و صرف) کے تابع ہوتا ہے۔ اس تعریف میں عام بول چال کی زبانوں اور پروگرامنگ زبانوں سمیت باقی کئی طرح کی زبانیں شامل ہیں۔ نوم چومسکی نے لینگویج تھیوری کے قواعد کی زمرہ بندی کر کے ان کی ہائرارکی تیار کی جس میں ٹائپ زیرو سے ٹائپ تھری تک کل چار زمرے ہیں اور ہر زمرے کے گرامر کی اپنی خصوصیات اور حدود و قیود ہیں اور ہر گرامر کے لیے چند ایک ایبسٹریکٹ تھیوریٹیکل مشینیں (Abstract theoretical machine) ہوتی ہیں جو ان کو ہضم کر سکتی ہیں، انھیں پیدا کر سکتی ہیں یا ان کی شناخت کر سکتی ہیں۔ انھیں زمروں میں ٹائپ تھری گرامر کے تحت آنے والے قواعد میں ریگیولر گرامر بھی موجود ہے اور ان قواعد سے مشروط زبان ریگیولر لینگویج کہلاتی ہے جو فائنائٹ آٹومیٹن تھیوریٹکل مشین سے شناخت کی جاتی ہے۔ اس ریگیولر لینگویج کے فقرے ریگیولر ایکسپریشن، ریگ ایکس (regex)، ریج ایکس یا ریشنل ایکسپریشن کہلاتے ہیں جنھیں عام بول چال میں پیٹرن بھی کہا جاتا ہے۔

ریگیولر ایکسپریشن کا استعمال ٹیکسٹ پارسنگ، پیٹرن میچنگ اور انپٹ ویلیڈیشن وغیرہ کے لیے بکثرت کیا جاتا ہے۔ نیز اس کی مدد سے سٹرنگز کی تلاش (find) یا تلاش-و-تبدیلی (find and replace) انتہائی آسان ہوجاتی ہے۔ اس کے استعمال سے ایک ہی لائن میں بہت بڑی بات کہی یا لکھی جا سکتی ہے جس سے پروگرام چھوٹا اور سادہ ہو جاتا ہے۔ جو پروگرامر نہیں ہیں ان کے لیے فائنڈ اینڈ رپلیس کے طور پر اس کا بہت استعمال ہے۔

اکثر پروگرامنگ زبانیں ریگیولر ایکسپریشن کے استعمال کو سپورٹ فراہم کرتی ہیں، بعض زبانیں بنیادی طور پر سپورٹ مہیا کرتی ہیں، جیسے پرل، جاوا سکرپٹ، روبی، اوک (AWK) اور ٹی سی ایل (Tcl) اور دیگر زبانوں میں اضافی لائبریری کی مدد سے سپورٹ فراہم کی جاتی ہے، جیسے ڈاٹ نیٹ زبانیں، جاوا، پائیتھون اور سی پلس پلس۔

ریگیولر ایکسپریشن کے لیے پی او ایس آئی ایکس اسٹینڈرڈ موجود ہے جس کے تین مختلف کمپلائنس سیٹ ہیں جن کا استعمال مختلف یونکس اسکرپٹس اور یوٹیلیٹیز میں پایا جاتا ہے، جبکہ پرل ریگیولر ایکسپریشن اپنی قوت اور خصوصیات کی وجہ سے مقبول عام معیار بن چکا ہے۔ چونکہ پرل ریگ ایکس معیار ایک ہے لہٰذا مختلف پروگرامنگ زبانوں میں ریگ ایکس میں کافی حد تک مماثلت پائی جاتی ہے لیکن ہر پروگرامنگ زبان کی اپنی کچھ ترجیحات اور اپنے اسلوب ہوتے ہیں لہٰذا ریگ ایکس لکھنے اور اس کے استعمال کے طریقہ کار میں کسی قدر عدم یکسانی دیکھنے کو ملتی ہے۔ مزید بر آں، وقت کے ساتھ ساتھ ریگیولر ایکسپریشن میں اضافی سہولیات بھی شامل کی جاتی رہی ہیں اور ضروری نہیں کہ ہر پروگرامنگ زبان میں ان اضافی سہولیات کو بر وقت شامل کیا گیا ہو لہٰذا اس وجہ سے بھی فرق موجود ہوتا ہے۔

استعمالات[ترمیم]

  • ویب میں تلاش کے لیے۔
  • ورڈ پروسیسنگ (Word processing)، تلاش (find) اور تبدیل کرنے (Replace) کے لیے۔
  • ڈیٹابیس میں فیلڈ کی درست کی جانچ کے لیے (Validate fields in a database؛ dates، email addr، URLs)۔
  • کورپس (corpus) میں کسی لسانی پیٹرن (linguistic patterns) کو تلاش کرنے کے لیے۔
  • پہیلیوں کو بنانے اور حل کرنے کے لیے۔
  • ہم قافیہ الفاظ تلاش کرنے کے لیے، جیسے کسی شاعر کو پانچ حروف والا کوئی لفظ چاہیے جس کے آخر میں سی ہو، تو اس کے لیے وہ ریگیولر ایکسپریشن کی مدد لے سکتا ہے۔

ریگیولر ایکسپریشن سرچ انجن کے لیے بھی مفید ہوتا ہے جیسے بنگ، گوگل یا یاہو! سرچ انجنز میں میں تو پورے ڈیٹابیس سے ہو کر گزرتے ہوئے پروسیسنگ کرنا پیچیدگی اور ریجیکس کی ڈیزائن کو دیکھتے ہوئے زیادہ کمپیوٹر وسائل خرچ کرنا ہو گا۔ گرچہ منتظمین داخلی طور پر ریجیکس پر مبنی کیوریز چلا سکتے ہیں، تاہم اکثر سرچ انجن عمومی طور پر ریجیکس سپورٹ فراہم نہیں کرتے۔