[Powered by Google Translate] [سیمینار: باقاعدہ اظہار کے ساتھ ملاپ کے پیٹرن] [جان Mussman-ہارورڈ یونیورسٹی] [یہ ہے CS50.-CS50.TV] ٹھیک ہے. ٹھیک ہے، سب کو خوش آمدید. یہ CS50 2012 ہے. میرا نام جان ہے، اور میں باقاعدہ اظہار کے بارے میں آج بات کر جائے گا. باقاعدہ اظہار کی طلب بنیادی طور پر ایک آلہ ہے، بلکہ کبھی کبھی استعمال کیا جاتا ہے کوڈ میں فعال طور پر بنیادی طور پر پیٹرن اور ڈور سے ملنے کے لئے. تو یہاں xkcd سے ایک ویب مزاحیہ ہے. اس کامک میں قاتل ہے جہاں ایک قتل رہسی ہے چھٹی پر کسی کی پیروی کی، اور اہم کردار کرنا پڑے ایک ایڈریس کے لئے تلاش کر ای میلز میں سے 200 میگا بائٹ کے ذریعے تلاش. اور وہ باقاعدہ اظہار کی طلب کون جانتا ہے جب کوئی ترک کرنے کے بارے میں ہیں - شاید ایک سپر ہیرو - swoops نیچے اور کچھ کوڈ لکھتے ہیں اور قتل رہسی حل کرتی ہے. تو شاید ہے کہ آپ کو ایسا کرنے کی با اختیار بنایا جائے گا کہ کچھ ہو جائے گا اس سیمینار کے بعد. ہم صرف زبان کے لئے ایک جامع تعارف فراہم کرنے کے لئے جا رہے ہیں اور آپ کو اپنے اپنے طور پر زیادہ وسائل کے بعد جانے کے لئے کافی wherewithal دے. تو باقاعدہ اظہار اس طرح بنیادی طور پر نظر آتے ہیں. یہ روبی میں ایک باقاعدہ اظہار ہے. یہ سبھی زبانوں میں بہت مختلف نہیں ہے. ہم روبی میں باقاعدہ اظہار شروع اور موقع پر صرف slashes پر ہے. اور یہ ای میل ایڈریس پیٹرن میں تلاش کرنے کے لئے ایک باقاعدہ اظہار ہے. تو ہم نے سب سے پہلے تھوڑا سا کسی بھی اکشرانکیی کردار کے لئے لگ رہا ہے دیکھتے ہیں. ای میل ایڈریس کو اکثر ایک حروف تہجی کے اعتبار کردار کے ساتھ شروع کرنے کے لئے ہے کیونکہ یہ ہے کہ. اور پھر کوئی خاص کردار @ علامت کے بعد. اور پھر ڈومین نام کے لئے ایک ہی چیز ہے. اور پھر 2 سے 4 حروف تو خالص.،. com کے لئے نظر، اور کرنے کے لئے. تاکہ باقاعدہ اظہار کی ایک اور مثال ہے. تو باقاعدہ اظہار متن میں patters تلاش کرنے کے لئے پروٹوکول ہیں. انہوں نے آپس میں موازنہ، انتخابات، اور تبدیلی کرتے ہیں. ایک ڈائریکٹری میں 54 میں ختم ہونے والے تمام فون نمبر کو تلاش کرنے جاتا ہے مثال کے طور پر ایک تہائی تو. تو CS50 ڈائریکٹری اپ ڈیوڈ rips سے پہلے ہم کو تلاش کر سکتے ہیں ہم قوسین ہے جہاں ایک پیٹرن تو 3 تعداد میں، پھر قوسین ختم 3 مزید نمبرز، ایک ڈیش، 2 نمبر، اور پھر 54. اور یہ کہ ہم اس کی تلاش کے لئے ایک باقاعدہ اظہار کے ساتھ آئے کہ کس طرح بنیادی طور پر ہو جائے گا. تو موجود ہیں - ہم CS50 میں کچھ چیزیں کیا کیا ہے کی طرح تھوڑا سا ہے کہ تو باقاعدہ اظہار، - مثال کے طور پر - dictionary.C فائل میں ہجے چیک مسئلہ سیٹ کے لئے آپ کو fscanf استعمال کیا ہے کر سکتے ہیں لغت سے ایک لفظ میں پڑھنے کے لئے. اور تم فیصد 45s 45 حروف کا ایک سٹرنگ لئے لگ رہا ہے دیکھ سکتے ہیں. تو یہ ایک ابتدائی باقاعدہ اظہار کی طرح کسی حد تک ہے. اور تم وہاں بل کے فٹ ہونے کے لئے کسی بھی 45 حروف ہو سکتے ہیں اور ان لوگوں کو اٹھا لو. سب سے زیادہ حال ہی میں ویب پروگرامنگ کے مسئلہ میں اور اس کے بعد دوسری مثال پی ایچ پی کے لئے distro کوڈ میں مقرر کیا ہم واقعی ایک سادہ باقاعدہ اظہار ہے. اور یہ ایک بس ویب پیج میں منظور کیا جاتا ہے کہ اگر چیک کرنے کے لئے لگ رہا ہے یا تو لاگ ان یا رجسٹر سے میل کھاتا ہے لاگ آؤٹ. پی ایچ پی. اور پھر اس کے باقاعدہ اظہار کے ملاپ کی بنیاد پر صحیح یا غلط آرہے ہیں. تو تم کب باقاعدہ اظہار استعمال کرتے ہیں؟ کیوں تم آج یہاں ہیں؟ کہ وہاں کچھ ہے تو جب آپ باقاعدہ اظہار کا استعمال کرتے ہیں نہیں کرنا چاہتا اس سے بھی زیادہ آسانی سے آپ کے لئے کام کرتا ہے. تو XML اور HTML اصل میں بہت مشکل ہیں ہم تھوڑا سا میں دیکھیں گے کے طور پر کے لئے باقاعدگی سے اظہار لکھنے کے لئے. تو ان زبانوں کے لئے سرشار parsers ہیں. آپ بھی اکثر تجارتی آف اور درستگی کے ساتھ ٹھیک ہو جائے گا کی ضرورت ہے. آپ کوشش کر رہے ہیں تو - تو ہم نے ایک ای میل ایڈریس کے لئے ایک باقاعدہ اظہار دیکھا لیکن آپ کو ایک مخصوص ای میل ایڈریس چاہتے تھے اور آہستہ آہستہ کہنا یہ زیادہ عین مطابق بن گیا کے طور پر باقاعدہ اظہار زیادہ پیچیدہ بن سکتا ہے. تاکہ ایک ٹریڈ بند ہو جائے گا. آپ ٹھیک باقاعدہ اظہار کے ساتھ کر رہے ہیں کہ اس بات کا یقین کرنا ہے. آپ کو آپ کے لئے تلاش کر رہے ہیں بالکل وہی جو جانتے ہیں تو یہ زیادہ احساس بنا سکتا ہے وقت میں ڈال دیا اور ایک سے زیادہ مؤثر تجزیہ کار لکھنے کے لئے. اور آخر میں باقاعدگی سے ایک تاریخی مسئلہ ہے اظہار اور زبانوں کی. باقاعدہ اظہار کی طلب اصل میں کہیں زیادہ طاقتور کے مقابلے میں ہیں فی باقاعدہ اظہار ایک رسمی معنوں میں کہتے ہیں. تو میں نے رسمی طور پر نظریہ میں بہت دور جانے کے لئے نہیں کرنا چاہتے لیکن سب سے زیادہ زبانوں میں ہم واقعی میں کوڈ باقاعدگی سے نہیں ہیں. باقاعدہ اظہار کی طلب کبھی کبھی وہ سب محفوظ تصور نہیں کر رہے ہیں اور اسی وجہ سے یہ ہے. تو بنیادی طور پر زبانوں کے لئے ایک Chomsky کے تنظیمی ڈھانچے، ہے اور باقاعدہ اظہار کی طلب یونین، concatenation، کا استعمال کرتے ہوئے کی تعمیر کر رہے ہیں اور ہم چند منٹ میں Kleene سٹار آپریشن دیکھیں گے کہ. اگر آپ دلچسپی رکھتے ہیں تو اصول میں ہڈ کے تحت وہاں پر جا کافی نہیں ہے. ایک مختصر تاریخ تو - یہاں صرف سیاق و سباق کے لئے - باقاعدگی سے سیٹ اپ آیا 1950s میں، اور پھر ہم اس سادہ ایڈیٹرز تھا باقاعدہ اظہار کی طلب شامل کر لیا - بس ڈور کی تلاش. Grep - جو ایک کمانڈ لائن کے آلے کے ہے - سب سے پہلے میں سے ایک تھا 1960s میں باقاعدہ اظہار کی طلب شامل ہے کہ بہت مقبول اوزار. '80s میں، پرل تعمیر کیا گیا تھا - ایک پروگرامنگ زبان ہے کہ بہت اہم باقاعدہ اظہار شامل ہیں. اور اس کے بعد حال ہی میں ہم نے پرل باقاعدہ اظہار ہم آہنگ ہو چکے ہیں بنیادی طور پر ایک ہی نحو کی زیادہ سے زیادہ استعمال کرنے والے دیگر زبانوں میں پروٹوکول. کورس کی سب سے اہم واقعہ 2008 ء میں تھا جہاں پہلے قومی باقاعدہ اظہار دن ہو گیا کیا تم نے اس کو منانے کے لئے کرنا چاہتے ہیں تو جس میں ہے 1 جون یقین رکھتے ہیں. یہاں ایک بار پھر، صرف تھوڑا سا زیادہ اصول. تو باقاعدہ اظہار کی تعمیر کے ایک جوڑے کے مختلف طریقے ہیں. ایک آسان طریقہ آپ کے لئے جا رہے ہیں کہ اظہار کی تعمیر کرنے کے لئے ہے تشریح سٹرنگ پر چلنے - بنیادی طور پر ہے کہ منی پروگرام ایک چھوٹا سا کی تعمیر ایک تار کے ٹکڑے کا تجزیہ اور دیکھیں گے، "اوہ، یہ باقاعدہ اظہار کے قابل ہے یا نہیں ہے؟" اور پھر اس چلائیں. آپ کو ایک بہت چھوٹے سے باقاعدہ اظہار ہے اگر ایسا ہے تو شاید یہ ہے ایسا کرنے کی سب سے زیادہ موثر طریقہ. اور پھر آپ تو - ایک اور آپشن تعمیر رکھنے کے لئے ہے اظہار تم جاؤ، اور یہ کہ انکرن امکان ہے. اور باقاعدگی سے اظہار الگورتھم میں ان ابتدائی کوششوں تھے نسبتا آسان اور نسبتا تیزی سے، لیکن لچک کی ایک بہت کی ضرورت نہیں تھی. تو چیزوں میں سے کچھ ہم کو دیکھنے کے لئے جا رہے ہیں جو بھی کرنا آج ہم زیادہ پیچیدہ باقاعدہ اظہار کرنا پڑا ہے ممکنہ طور پر بہت سست ہے کہ نفاذ؛ بات کو ذہن میں برداشت کرنے کے لئے کچھ ہے تاکہ حملے قسم کی ایک باقاعدہ اظہار کی طلب انکار بھی ہے ان نئے نفاذ کے لئے ممکنہ استحصال کہ بہت پیچیدہ بننے کے لئے باقاعدہ اظہار. اور ہم بفر اتپرواہ حملوں میں نے دیکھا ہے کہ زیادہ سے زیادہ ایک ہی معنوں میں، آپ کو اس کا کام ہے کہ پنراورتی loops بنانے کے حملوں ہے میموری کی صلاحیت overrun. اور ویسے Regexen باقاعدہ اظہار کی سرکاری جمع میں سے ایک ہے اینگلو سکسون میں بیلوں پر قیاس کرتے. ٹھیک ہے، تو ازگر لائبریری شخص میں آپ کو یہاں کے بہت سے میکس ہے، لہذا آپ کو اصل میں آپ کی سکرین پر اس ھیںچو کر سکتے ہیں. باقاعدہ اظہار کی طلب ازگر میں تعمیر کر رہے ہیں. اور اس ازگر اس لنک میں میکس اور بھی آن لائن دستیاب پر preloaded ہے. آپ دیکھ رہے ہیں تو اگر آپ کو روکنے اور آپ ازگر ہے اس بات کا یقین کر سکتے ہیں ہم یہاں کے ارد گرد کے طور پر کھیلتے ہیں. آپ کو صرف آپ کے کمپیوٹر میں ازگر ٹائپ کریں اگر ایسا ہے تو ایک دستی آن لائن ہے آپ کو ورژن ٹرمینل میں آتا ہے نظر آئے گا. تو میں نے ازگر کے ورژن 2 کے ساتھ ساتھ ایک دھوکے باز شیٹ کے لئے دستی کا ایک لنک فراہم کیا. وہاں ازگر کے ایک ورژن 3 ہے، لیکن آپ میک ضروری نہیں ہے preloaded اس کے ساتھ آتے ہیں. تو بہت مختلف نہیں. ٹھیک ہے، تو ازگر میں باقاعدہ اظہار کا استعمال کرتے ہوئے میں سے کچھ بنیادی باتیں. تو یہاں میں ایک بہت سادہ اظہار کا استعمال کیا، تو میں ازگر درآمد دوبارہ کیا اور پھر re.search کا نتیجہ لیا. اور تلاش کے 2 دلائل لیتا ہے. پہلی باقاعدہ اظہار ہے، اور دوسری متن اس طرح ہے یا اگر آپ کا تجزیہ کرنا چاہتے ہیں سٹرنگ. اور پھر میں result.group باہر طباعت. تو آج ہم ان کو دیکھنے کے لئے جا رہے ہیں 2 بنیادی کام یہ ہیں باقاعدہ اظہار کے بارے میں سیکھنے میں. تو صرف یہ باقاعدہ اظہار یہاں نیچے توڑ ح اور پھر \ W اور پھر میٹر تاکہ \ W صرف وہاں میں کسی بھی حروف تہجی کے اعتبار کردار قبول کرتا ہے. تو یہاں ہم ایک اور حروف تہجی کے اعتبار کردار ایک "ح" کے لئے تلاش کر رہے ہیں اور اس کے بعد اور پھر میٹر، تو یہاں ہیم سے مطابقت کرے گا میں، "ابراہم لنکن اور ہیم سینڈوچ." یہ اس گروپ کا نتیجہ ہے. ہم کر سکتے ہیں کہ ایک اور چیز ازگر میں متن کے ہمارے سے پہلے ڈور استعمال ہے. تو میں نے آگے بڑھو اور یہاں کہ ھیںچو گا لگتا ہے. ازگر درآمد دوبارہ. اور میں ایک ہی بات کرنا تو - ہم سے متن اس طرح ہے کہنے دو "ابراہیم،" ہم میں زوم دو - وہاں ہم چلے. متن "ابراہیم ہیم کھاتا ہے." ہے ٹھیک ہے، اور پھر = re.search نتیجے میں. اور پھر ہمارا اظہار ک ہو سکتا ہے، اور پھر میں ڈاٹ م کریں گے. تو ڈاٹ صرف نمبرز سمیت ایک نئی لائن نہیں ہے کہ کسی بھی کردار لیتا ہے فیصد علامات، اس طرح کچھ بھی. اور پھر متن - بوم - اور پھر result.group-جی ہاں. تاکہ یہاں بنیادی فعالیت کو لاگو کرنے میں کتنا ہے. اس پاگل متن - - ہم اس کو ایک متن کی انگوٹی ہوتا تو واپس slashes کے بہت سے کا کہنا ہے کہ شامل اور اندر ڈور اور فرار انداز کی طرح نظر کر سکتے ہیں جو چیزیں، پھر ہم شاید قبول کیا گیا ہے اس بات کو یقینی بنانے کے لئے خام متن کی ان پٹ استعمال کرنا چاہتے ہیں. اور ایسے ہی لگتا ہے کہ. ہم وہاں میں ان میں سے ہر ایک کے لئے تلاش کر رہے تھے تو اگر ہم کچھ تلاش نہیں ہونا چاہئے. لیکن اس کے تم اس پر عمل درآمد کرے گا کس طرح ہے، صرف اس سے پہلے کے سٹرنگ باقاعدہ اظہار آپ کو خط ر ڈال دیا. ٹھیک ہے، تو ہم سے جاتے رہتے ہیں. درست تمام - تو ہمیں یہاں ایک جوڑے کے بار بار پیٹرن بھی جائزہ لیں. تو تم کیا کرنا چاہتے ہے کہ ایک بات باتیں دہرانے ہے آپ کو متن کے ذریعے تلاش کر رہے ہیں کے طور پر. تو ب کی کسی بھی تعداد کی طرف سے ایک کی پیروی کرنے کے لئے - آپ AB * کرتے ہیں. اور پھر دوسرے قوانین کا ایک سلسلہ بھی موجود ہیں. اور تم ان کو سب کو دیکھ سکتے ہیں، میں صرف میں سے کچھ کے ذریعے چلائے گی سب سے زیادہ عام لوگ کیا کرتے تھے. تو AB + ایک کسی ن ب کے 0 سے زیادہ کی طرف سے بعد ہے. AB؟ ایک ب 0 یا 1 کے بعد. AB {ن} کا ایک ب کی (ن) کے بعد، اور پھر اسی طرح کی ہے. آپ گھوبگھرالی منحنی خطوط وحدانی میں 2 نمبر ہیں تو آپ کو ایک قسم کی وضاحت کر رہے ہیں کہ ممکنہ طور پر ملاپ ہو سکتا ہے. تو ہم ایک منٹ میں ایک جوڑے کے بار بار پیٹرن میں زیادہ نظر آئے گا. تو یہاں کے آلات کے ملاپ کے ان پیٹرن کا استعمال کرتے وقت ذہن میں رکھنے کے لئے 2 چیزیں. ہم ایچ ایم میں دیکھنا چاہتا ہوں تو کہتے ہیں کہ، "ابراہم لنکن ہیم سینڈوچ بنا دیتا ہے." تو میں نے ابراہیم ابراہم لنکن کا نام تبدیل کر دیا گیا. اور اب ہم، اس تلاش تقریب کی طرف سے واپس لوٹ آئے ہے اس کے لئے تلاش کر رہے ہیں اور یہ صرف اس صورت میں ہیم واپس. اور یہ تلاش صرف قدرتی طور پر بائیں سب سے زیادہ قطار لیتا ہے اس کی وجہ سے کرتا ہے. اور تم دوسری صورت کی وضاحت جب تک کہ تمام باقاعدہ اظہار کی طلب وہ کروں گا. ہم سب کو تلاش کرنے کے لئے کرنا چاہتا تھا تو اس کے لیے ایک تقریب نہیں ہے - سب کچھ مل جائے. تو صرف تمام = re.findall ('h.m'، متن) کی طرح نظر کر سکتے ہیں اور اس کے بعد) (all.group. تمام ہیم اور ہیم دونوں کی پیداوار؛ ہر ہیم اس معاملے میں دونوں ابراہیم میں تاروں کی. تو یہ ایک اور اختیار ہے. عظیم. کو ذہن میں رکھنے کے لئے دوسری چیز باقاعدہ اظہار intuitively سب سے بڑی لے ہے. ہمیں اس مثال بھی جائزہ لیں. ہم یہاں اس کے بائیں سب سے زیادہ تلاش کیا، اور پھر میں ایک بڑی تلاش کرنے کی کوشش کی Kleene اسٹار آپریٹر کا استعمال کرتے ہوئے. تو اس کے لئے، "ابراہم لنکن، ہیم سینڈوچ بنا دیتا ہے" اور میں نے صرف واپس مل گئی نتیجے کے طور پر میٹر. اس غلطی کی وجہ سے میں نے کی کسی بھی تعداد لے لیا ہے کر سکتا ہے تھا میں ح اور م کے درمیان میں جانے کے لئے کچھ بھی کی وضاحت نہیں کی تھی کیونکہ ح ہے. میٹر تھا کہ وہاں صرف مثال کے طور پر - اس میں میٹر کے ساتھ وہاں صرف مثالیں اور ح کی کی کسی بھی تعداد صرف سٹرنگ میٹر تھے. پھر میں نے دوبارہ کوشش کی، میں نے کہا، "ٹھیک ہے، ہم یہاں اصل سب سے بڑا گروپ ہونے دو." اور پھر میں ح کیا. * M، صرف ک اور میٹر کے درمیان حروف کی کسی بھی تعداد واپس تاکہ. اور تم صرف باہر شروع کر رہے ہیں اور ٹھیک ہے، اچھی بات یہ ہے، اوہ "، گے سوچ تو مجھے ہیم حاصل، "یہ اصل میں ابراہم لنکن میں ح سے سب کچھ لیتا ہے ہیم کے آخر تک تمام راستے. یہ لالچی ہے، یہ ایچ دیکھتا ہے - اس سب کے دوسرے متن - M، اور یہ کہ اس کے اندر لیتا ہے کیا ہے یہ ایک خاص طور پربل ہے - یہ ہم بھی کر سکتے ہیں ایک خصوصیت ہے یہ دیگر افعال کا استعمال کرتے ہوئے لالچی نہیں کی وضاحت کے لئے. لیکن یہ ہم نے خاص طور پر ذہن میں رکھنے کی ہے کچھ ہے ایچ ٹی ایم ایل متن کو دیکھ کر جب، جس کی ایک وجہ یہ ہے کہ باقاعدہ اظہار کی طلب ایچ ٹی ایم ایل کے لئے مشکل ہے. کیونکہ تم درمیان میں ایک HTML ٹیگ کھولیں اور پھر چیزیں بہت ہے تو اور پھر کچھ دوسرے ایچ ٹی ایم ایل، پروگرام میں بہت بعد میں ٹیگ بند آپ صرف ممکنہ طور پر غلطی سے آپ ایچ ٹی ایم ایل کوڈ کا ایک بہت کھا لیا ہے. ٹھیک ہے - تو زیادہ خاص حروف، کئی دیگر زبانوں کی طرح، ہم سلیش کا استعمال کرتے ہوئے سے بچنے کے. تو ہم نے ایک نئی لائن کے علاوہ کسی بھی کردار کی وضاحت کرنے ڈاٹ استعمال کر سکتے ہیں. ہم کسی بھی حروف تہجی کے اعتبار کردار کی وضاحت کرنے کے لئے فرار W استعمال کر سکتے ہیں. اور کسی بھی عددی کے لئے قیاس فرار D کی طرف سے - عددی کردار. ہم وضاحت کر سکتے ہیں - ہم متعلقہ اظہار کی طلب کی وضاحت بریکٹ استعمال کر سکتے ہیں. تو یہ ایک، B، C یا قبول نہیں کرے گا. اور ہم بھی وضاحت یا ایک یا بی یا تو کے لئے اختیارات کرسکتے ہیں. مثال کے طور پر - ہم نے ایک سے زیادہ امکانات کے لئے تلاش کر رہے تھے تو بریکٹ میں ہم میں کے طور پر یا آپریٹر استعمال کر سکتے ہیں - تو ہمیں یہاں اس مثال پر واپس چلتے ہیں. تو ہمیں یہاں اس مثال پر واپس جانے دو، اور - اور اب ہمیں لے جانے دو AE لے - تو اس کو واپس کرنا چاہئے - میں نے یہ بھی ابراہیم ہے لگتا ہے. یہ تو - ہم سب کرتے ہیں تو - عظیم. تو ہمیں یہاں متن کو اپ ڈیٹ ہیں. "اس hemming جبکہ ابراہیم ہیم کھاتا ہے -. hemming جبکہ" عظیم. تمام. عظیم. اب ہم ہیم، ہیم، اور ہیم ملتا ہے. hemming کرتے ہوئے - اس کے پاس humming جبکہ - ہیم نے اس سے humming جبکہ. عظیم. ایک ہی بات. اب ہم یا اس پر اٹھا کے بغیر اب بھی صرف، ہیم ہیم، اور ہیم واپس. عظیم - ہم یا تو پر نظر کرنا چاہتے تھے تو کیا ہے - تو ہم بھی کر سکتے ہیں اس سے یا - ہم اس کے پاس واپس آ جائے گا. ٹھیک ہے - تو - ٹھیک ہے - عہدوں پر آپ کو بھی جزم یا ڈالر کا نشان استعمال کر سکتے ہیں اگر آپ کو شروع میں کچھ نہ کچھ ایک تار کے آخر کے لئے تلاش کر رہے ہیں کی وضاحت کرنے کے لئے. شروع کرنے یا یا ایک لفظ کے آخر میں. کہ استعمال کرنے کے لئے ایک طریقہ ہے. ٹھیک ہے - تو ہم سے ٹیکسٹ کا ایک تھوڑا سا بڑا بلاک کے ساتھ کے ارد گرد کھیلتے ہیں. ہمیں یہاں اس قطار کا کہنا ہے کہ دو - اس بیان یہاں. باقاعدہ اظہار کی طاقت وہ پیٹرن کی وضاحت کر سکتے ہیں صرف حروف مقرر نہیں. ہمیں کرنے دو - ہم اس کے ٹکڑے کو فون کرتے ہیں. پھر ہم اس کے اندر کے تمام پڑھے گا اور پھر ایک ہے - ہم سب = بنا دو، ہم نفع یہاں میں تلاش کر سکتے ہیں کچھ چیزیں تو کیا ہیں؟ ہم اظہار کان کے لئے نظر سکتا ہے. نہیں بہت دلچسپ. کس طرح اس کے بارے میں؟ ہم کیا ہوتا نظر آئے گا. میں نے اسے ایک مسئلہ دیا. تو دوبارہ اور سب سے پہلے چیزوں کی کسی بھی تعداد. تو یہ شروع سے اپ شاید سب دوبارہ ایک جوڑے کے اوقات کے لئے سب کچھ واپس آ جانا چاہئے. اور پھر یہاں ہمارے پاس باقاعدہ اظہار کی طاقت ہے کہ وہ پیٹرن کی وضاحت کر سکتے یہاں حروف نہ صرف کر رہے ہیں. تو اپ حتمی دوبارہ کرنے کے لئے تمام طریقے سے، اس کے بائیں سب سے زیادہ کے ساتھ شروع اور لالچی تھا. دیکھتے ہیں - ہم کو اور کیا نظر سکتا ہے. آپ pronouns کے لئے تلاش میں دلچسپی رکھتے تھے تو میں ایک بات لگتا ہے وہ اور وہ، آپ کے 0 یا 1 کے برابر ہونے کی وجہ سے کی جانچ پڑتال کر سکتے ہیں اور اظہار انہوں نے، اور وہ شاید واپس لوٹنے کے لئے نہیں جا رہا ہے - اوہ، میں وہاں ہم یہاں، طاقت، اس دن میں ہیں تلاش کر رہے ہیں کیونکہ وہ واپس آ گیا ہے. ہمیں یہ کچھ کے آغاز میں آنے کے لئے ہے کی وضاحت کرنے کی کوشش کرتے ہیں. اس دور گراتا ہے تو ہمیں دیکھتے ہیں. تو ہم چربی کر سکتے ہیں، اور وہاں ہم کچھ نہیں ملتا کیونکہ وہ اور وہ اس جملے میں پائے جاتے ہیں نہیں ہے. عظیم. ٹھیک ہے - تو واپس بلی کے لئے یہاں. تو پیچیدہ پیٹرن دماغ ستا رہا ہے. ہم ان مسائل سے بچنے کے لئے باقاعدہ اظہار کا استعمال کرتے ہیں اسی وجہ سے تو ہے. تو یہاں آپ کے ساتھ کے ارد گرد ادا کر سکتے ہیں کسی دوسرے مفید طریقوں ہیں. آج ہم نے تلاش کی طرف دیکھا، لیکن آپ کو بھی میچ، تقسیم، findall، اور گروپس استعمال کرسکتے ہیں. تم صرف اس کے علاوہ باقاعدہ اظہار کے ساتھ کیا کر سکتے ہیں تو دوسرے ٹھنڈی چیزیں پیٹرن کی تلاش میں ایک پیٹرن لینے اور تمام میچوں کا انعقاد کیا جاتا ہے - اس کے متغیر - اور پھر بعد میں اپنے کوڈ میں ان کا استعمال کرتے ہوئے. یہ کافی مددگار ثابت ہو سکتا ہے. دوسری چیزوں گنتی ہو سکتا ہے. تو ہم نے، ایک باقاعدہ اظہار پیٹرن کے واقعات کی تعداد شمار کر سکتے ہیں اور اس کے لئے ہم گروپوں کا استعمال کرسکتے ہیں. اور دیگر طریقوں کے ساتھ ساتھ یہ بھی ممکن ہیں. تو میں تمہیں صرف باقاعدہ اظہار کا استعمال کر سکتے دیگر طریقوں کے بارے میں تھوڑا سا مزید بات کرنا چاہتے ہیں. تو ایک اعلی درجے کی درخواست فجی کے ملاپ میں ہے. آپ اظہار، جولیس سیزر، کے لئے ایک متن کے لئے تلاش کر رہے ہیں اگر ایسا ہے تو اور آپ کو دیگر زبانوں میں گیس جولیس سیزر یا نام Julius کیسر یا تو دیکھ تو پھر آپ بھی ان اقدار پر کچھ وزن تفویض کرنا چاہتے ہو سکتا ہے. اور یہ بند کافی ہے تو - یہ ایک مخصوص حد پار تو - تو پھر آپ چاہتے ہیں جولیس سیزر کو قبول کرنے کے قابل ہو. اتنی اچھی طرح کے طور پر چند دیگر زبانوں میں اس کے لیے ایک جوڑے کو مختلف نفاذ ہیں. ایک ہاتھ تھوڑا اپلی کیشن کے لئے آن لائن - یہاں کچھ دوسرے کے اوزار، Regex پال ہیں آپ کے باقاعدہ اظہار کی طلب درست طریقے سے پر مشتمل ہو تو چیک کریں. آپ کو اپنے ڈیسک ٹاپ سے چلا سکتے ہیں کہ اسٹینڈ آلات بھی ہیں الٹرا پیکو، اور اسی طرح صرف cookbooks کی طرح. آپ باقاعدہ اظہار کے ایک ٹن شامل ہے کہ ایک پروجیکٹ کر رہے ہیں تو اگر یہ شاید آج کی حدود سے باہر جانے کی جگہ ہے. اور پھر صرف آپ کو یہ کتنا عام کا احساس دینے کے لئے grep یونیکس میں ہے، پرل کی تعمیر میں ہے، اور سی سی کے لئے PCRE ہے اور پھر ان تمام دیگر زبانوں میں بھی باقاعدہ اظہار ہے پیکجوں کے کہ ہم آج کا ذائقہ مل گیا بنیادی طور پر ایک ہی نحو کے ساتھ کام کرتے ہیں. پی ایچ پی، جاوا، روبی، اور اسی طرح کی. گوگل کوڈ تلاش اصل میں قابل ذکر ہے، اس میں سے ایک ہے عوامی تک رسائی حاصل کرنے کی اجازت دیتا ہے کہ وہاں نسبتا چند ایپلی کیشنز باقاعدہ اظہار کا استعمال کرتے ہوئے اس کے ڈیٹا بیس. آپ نے گوگل کوڈ تلاش پر نظر تو اگر آپ نے کوڈ تلاش کر سکتے ہیں آپ کو ایک تقریب میں استعمال کیا جا سکتا ہے کہ کس طرح کی ایک مثال کے طور پر تلاش کر رہے ہیں، آپ کو مختلف مقدمات کی ہر قسم میں استعمال کیا جا رہا ہے کہ تقریب کے تلاش کرنے کے لئے ایک باقاعدہ اظہار کے استعمال کر سکتے ہیں. آپ fwrite کے لئے نظر کر سکتا ہے، اور پھر آپ کو لکھنے کے پرچم کے لئے نظر آتے ہیں یا پڑھ سکتا ہے آپ اس صورت میں استعمال کیا جا رہا fwrite کی ایک مثال چاہتے تھے تو. یہاں تو وہاں ایک ہی بات، اور کچھ حوالہ جات ہیں. یہ فارورڈز جا کے ساتھ ساتھ آن لائن دستیاب ہو جائے گا اگر آپ ازگر، grep، پرل کو دیکھنے کے لئے چاہتے ہیں - آپ کو صرف کچھ پریرتا حاصل کرنا چاہتے ہیں آپ یہاں نظریہ میں زیادہ دیکھنے کے لئے چاہتے ہیں تو یا مقامات سے دور کچھ اچھی جمپنگ ہیں. بہت بہت شکریہ. [CS50.TV]