JavaRush /جاوا بلاگ /Random-SD /RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء. حصو 1
Artur
سطح
Tallinn

RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء. حصو 1

گروپ ۾ شايع ٿيل
هن مضمون جو اصل هتي آهي . غالباً ڪا به شيءِ نه آهي تمام گهڻو نظريو، ۽ آئون مضمون جي آخر ۾ ريجڪس تي وڌيڪ تفصيلي مواد جا ڪيترائي لنڪ مهيا ڪندس. پر مون کي ائين لڳي رهيو هو ته ڪنهن موضوع تي غور ڪرڻ شروع ڪرڻ جهڙو باقاعده اظهار گهڻو وڌيڪ دلچسپ هوندو، جيڪڏهن ڪو موقعو هجي ته نه رڳو رنڊڪ ​​​​جي، پر فوري طور تي معلومات کي گڏ ڪرڻ سان گڏوگڏ ننڍن ڪمن کي مڪمل ڪري. RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 1اچو ته شروع ڪريون. عام طور تي پروگرامنگ ۾ باقاعده اظهار ('RegEx' يا صرف 'regex') استعمال ڪرڻ جا مخالف هيٺ ڏنل اقتباس جو حوالو ڏيندا آهن، جيمي زونسڪي ڏانهن منسوب ڪيو ويو آهي: "ڪجهه ماڻهو، جڏهن ڪنهن مسئلي سان منهن ڏيڻ، سوچيو، 'مان ڄاڻان ٿو، مان باقاعده اظهار استعمال ڪندس. “ ”هاڻي اهي ٻه مسئلا آهن“. حقيقت ۾، باقاعده اظهار جو استعمال اڃا تائين سٺو يا خراب خيال ناهي. ۽ اهو پاڻ ۾ مسئلا شامل نه ڪندو ۽ انهن مان ڪنهن کي به حل نه ڪندو. اهو صرف هڪ اوزار آهي. ۽ توهان ان کي ڪيئن استعمال ڪيو (صحيح يا غلط) اهو طئي ڪيو ته توهان ڪهڙا نتيجا ڏسندا. جيڪڏهن توهان regex استعمال ڪرڻ جي ڪوشش ڪندا، مثال طور، هڪ HTML پارسر ٺاهڻ لاءِ، ته پوءِ توهان کي گهڻو ڪري درد محسوس ٿيندو . پر جيڪڏهن توهان صرف ڪڍڻ چاهيو ٿا، مثال طور، ڪجهه قطارن مان ٽائيم اسٽيمپ، توهان شايد ٺيڪ ٿي ويندا. ان کي آسان بنائڻ لاءِ توهان لاءِ باقاعده اظهار ۾ مهارت حاصل ڪرڻ لاءِ، مون هي سبق گڏ ڪيو آهي جيڪو توهان کي صرف ويهن ننڍن قدمن ۾ شروع کان باقاعده اظهار جي مهارت حاصل ڪرڻ ۾ مدد ڪندو. هي سبق بنيادي طور تي باقاعده اظهار جي بنيادي مفهومن تي ڌيان ڏئي ٿو ۽ صرف ضروري طور تي وڌيڪ ترقي يافته عنوانن تي ڌيان ڏئي ٿو.

قدم 1: ڇو استعمال ڪريو باقاعده اظهار

RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 2ريگيولر ايڪسپريس استعمال ڪيا ويندا آهن ڳولها ڳولهڻ لاءِ متن ۾ مخصوص نمونن (نمونين). regex استعمال ڪندي، اسان آساني سان ۽ آسانيءَ سان لفظن مان لفظ ڪڍي سگھون ٿا ، ان سان گڏ انفرادي لغوي ۽ ميٽا اکر ۽ انھن جون ترتيبون جيڪي مخصوص معيارن سان ملن ٿيون. ھتي اھو آھي جيڪو وڪيپيڊيا اسان کي انھن جي باري ۾ ٻڌائي ٿو : ريگيولر ايڪسپريشن ھڪڙي رسمي ٻولي آھي متن ۾ ذيلي اسٽرنگ کي ڳولھڻ ۽ مٽائڻ لاءِ، ميٽا اچار (وائلڊ ڪارڊ اکر) جي استعمال جي بنياد تي. ڳولها لاءِ، هڪ نمونو اسٽرنگ (انگريزي نمونو، روسي ۾ ان کي اڪثر سڏيو ويندو آهي "ٽيمپليٽ"، "ماسڪ") استعمال ڪيو ويندو آهي، علامتن ۽ ميٽاسيمبولز تي مشتمل آهي ۽ ڳولا جي قاعدي جي وضاحت ڪندي. متن کي ترتيب ڏيڻ لاء، هڪ متبادل اسٽرنگ اضافي طور تي بيان ڪيو ويو آهي، جنهن ۾ پڻ خاص اکر شامل هوندا. dogنموني هن جملي ۾ لفظ وانگر سادو ٿي سگهي ٿو :
تيز ناسي لومڙ سست ڪتي مٿان ٽپو ڏئي ٿو.
هي باقاعده اظهار هن طرح نظر اچي ٿو:
ڪتو
... ڪافي آسان، آهي نه؟ نمونو به ٿي سگهي ٿو ڪو به لفظ جنهن ۾ اکر هجي o. اهڙي نموني ڳولڻ لاء هڪ باقاعده اظهار هن طرح نظر اچي سگهي ٿو:
\w * o \ w *
( توهان هن باقاعده اظهار کي هتي آزمائي سگهو ٿا .) توهان ڏسندا ته جيئن "ملندڙ" گهرجون وڌيڪ پيچيده ٿينديون آهن، باقاعده اظهار پڻ وڌيڪ پيچيده ٿيندو. اکرن جي گروپن جي وضاحت ڪرڻ ۽ ورجائڻ واري نمونن کي ملائڻ لاءِ اشارن جا اضافي فارم آھن، جن کي مان ھيٺ بيان ڪندس. پر، جيئن ئي اسان کي ڪجھ متن ۾ ھڪڙي نموني سان ملندڙ ملن ٿا، پوء اسان ان سان ڇا ڪري سگھون ٿا؟ جديد ريگيولر ايڪسپريشن انجڻ توهان کي اجازت ڏين ٿا ته اکرن جي ترتيب يا اکرن جي ترتيبن (ذيلي اسٽرينگ) تي مشتمل متن مان، يا انهن کي هٽائي، يا انهن کي ٻئي متن سان تبديل ڪريو. عام طور تي، باقاعده اظهار استعمال ڪيا ويندا آهن متن کي پارس ڪرڻ ۽ ترتيب ڏيڻ لاء. اسان ڪڍي سگھون ٿا، مثال طور، ذيلي اسٽرنگ جيڪي IP پتي وانگر نظر اچن ٿا ۽ پوء انھن جي تصديق ڪرڻ جي ڪوشش ڪريو. يا اسين نالا ۽ اي ميل ايڊريس ڪڍي سگھون ٿا ۽ انھن کي ڊيٽابيس ۾ محفوظ ڪري سگھون ٿا. يا اي ميلن ۾ حساس معلومات (جهڙوڪ پاسپورٽ نمبر يا فون نمبر) ڳولڻ لاءِ باقاعده اظهار استعمال ڪريو ۽ صارف کي خبردار ڪريو ته اهي شايد پاڻ کي خطري ۾ وجهي رهيا آهن. ريجڪس واقعي هڪ ورسٽائل اوزار آهي جيڪو سکڻ ۾ آسان آهي پر مهارت حاصل ڪرڻ ڏکيو آهي: “جيئن ته ميوزڪ جي هڪ ٽڪري کي چڱي طرح هلائڻ ۽ ميوزڪ ٺاهڻ ۾ فرق آهي، تيئن باقاعده اظهار کي ڄاڻڻ ۽ انهن کي سمجهڻ ۾ فرق آهي.” - جيفري E. F. Friedl، ماسٽرنگ باقاعده اظهار

قدم 2: چورس بریکٹ[]

آسان ترين باقاعده اظهار جيڪي سمجھڻ ۾ آسان آھن اھي اھي آھن جيڪي صرف باقاعده اظهار جي نمونن ۽ ھدف واري اسٽرنگ جي وچ ۾ ھڪڙي ڪردار جي لحاظ سان ملن ٿا. اچو ته، مثال طور، هڪ ٻلي ڳولڻ جي ڪوشش ڪريو: RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 3
نمونو: ٻلي
تار: ٻلي ڪٽي وئي جڏهن اها ڪار جي هيٺان ڀڄي وئي.
ملندڙ:      ^^^
( اهو عمل ۾ ڪيئن ڪم ڪري ٿو - هتي ڏسو ) NB! سڀ حل هتي پيش ڪيا ويا آهن صرف ممڪن حل طور. باقاعده اظهار ۾، جيئن عام طور تي پروگرامنگ ۾، توهان ساڳئي مسئلن کي مختلف طريقن سان حل ڪري سگهو ٿا. جڏهن ته، هڪ سخت ڪردار جي لحاظ کان-ڪردار جي مقابلي کان علاوه، اسين پڻ وضاحت ڪري سگهون ٿا متبادل ميچ استعمال ڪندي چورس بریکٹ:
نموني: ca[rt]
تار: ٻلي ڪٽي وئي جڏهن اها ڪار جي هيٺان ڀڄي وئي.
ملندڙ:      ^^^ ^^^
( اهو ڪيئن ڪم ڪري ٿو ) چورس بریکٹ کي کولڻ ۽ بند ڪرڻ ريگيولر ايڪسپريس انجڻ کي ٻڌائي ٿو ته ان کي ڪنهن به مخصوص اکرن سان ملائڻ گهرجي، پر صرف هڪ. مٿيون باقاعده اظهار نه ملندو، مثال طور، cartسڄو لفظ، پر صرف ان جو حصو ملندو:
نموني: ca[rt]
تار: ٻلي کٽي وئي جڏهن اها گاڏي جي هيٺان ڊوڙي وئي.
ملندڙ:      ^^^ ^^^
( اهو ڪيئن ڪم ڪري ٿو ) جڏهن توهان اسڪوائر بریکٹ استعمال ڪندا آهيو، توهان ريگيولر ايڪسپريس انجڻ کي چئو ٿا ته بريڪٽس ۾ موجود اکرن مان صرف هڪ کي ملائي. انجڻ ڳولهي ٿو ڪردار c، پوءِ ڪردار a، پر جيڪڏهن اڳيون ڪردار نه آهي rيا t، ته پوءِ هي مڪمل ميچ نه آهي. جيڪڏهن اهو ڳولي ٿو ca، ۽ پوء يا ته r، يا t، اهو روڪي ٿو. اهو وڌيڪ اکرن کي ملائڻ جي ڪوشش نه ڪندو ڇو ته چورس بریکٹ ظاهر ڪن ٿا ته صرف هڪ اکرن کي ملائڻ جي ضرورت آهي. جڏهن اهو ڳولهي ٿو ca، اهو ايندڙ rلفظ ۾ ڳولي ٿو cart، ۽ روڪي ٿو ڇاڪاڻ ته اهو اڳ ۾ ئي ترتيب لاء هڪ ميچ ڳولي چڪو آهي car.

تربيت جا مقصد:

هڪ باقاعده اظهار لکو جيڪو سڀني 10 نمونن سان ملندو آهي هن اقتباس had۾ Hadمقامي لهجي ۾ غير ترجمو ٿيل جملن جي:
نموني:
جملو: جم، جتي بل وٽ "had" هوندو هو ، وٽ هوندو هو "had" هو . "ها ها" صحيح هو.
ملندڙ:                  ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^
( هتي ممڪن حل ڏسو ) هيٺ ڏنل جملي ۾ سڀني جانورن جي نالن بابت ڇا؟
نموني:
تار: هڪ چمگادڙ، ٻلي، ۽ هڪ چوڙو بار ۾ هليو ويو...
ملندڙ:    ^^^ ^^^ ^^^
( ممڪن حل ) يا ان کان به وڌيڪ آسان: لفظن کي ڳولھيو barيا bat:
نموني:
تار: هڪ چمگادڙ، ٻلي، ۽ هڪ چوڙو بار ۾ هليو ويو...
ملندڙ:    ^^^ ^^^
( ممڪن حل ) هاڻي اسان اڳ ۾ ئي سکي چڪا آهيون ته ڪيئن وڌيڪ يا گهٽ پيچيده ريگيولر ايڪسپريشن لکڻ، ۽ اسان صرف قدم 2 تي آهيون! اچو ته جاري رکون!

قدم 3: Escape Sequences

RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 4پوئين قدم ۾، اسان سکيو ته چورس بریکٹ بابت []۽ ڪيئن اهي اسان کي ريجڪس انجڻ استعمال ڪندي متبادل ميچ ڳولڻ ۾ مدد ڪندا آهن. پر ڇا جيڪڏهن اسان پاڻ کي کليل ۽ بند چورس بریکٹ جي صورت ۾ ميچ ڳولڻ چاهيون ٿا []؟ جڏهن اسان لفظ جي اکرن سان ملندڙ هڪ اکرن کي ڳولڻ چاهيون ٿا cat، اسان regex انجڻ مهيا ڪيو اکرن جي هن ترتيب سان ( cat). اچو ته []ساڳيء طرح چورس بریکٹ ڳولڻ جي ڪوشش ڪريو:
نمونو: [] 
string: توهان regex استعمال ڪندي [] ملائي نٿا سگهو! توهان کي اهو افسوس ٿيندو!
ملن: 
( اچو ته ڏسون ڇا ٿيو ) ڪجھ ڪم نه ڪيو، بهرحال... اهو ان ڪري جو چورس بریکٹ اکر خاص ريجڪس انجڻ جي اکرن وانگر ڪم ڪن ٿا جيڪي عام طور تي ڪنهن ٻئي شيءِ کي ظاهر ڪرڻ لاءِ استعمال ڪيا ويندا آهن، ۽ انهن کي پاڻ سان ملائڻ لاءِ لفظي نمونو نه هوندو آهي. جيئن اسان کي ياد آهي قدم 2 کان، اهي متبادل ميچ ڳولڻ لاءِ استعمال ڪيا ويندا آهن ته جيئن ريجڪس انجڻ انهن جي وچ ۾ موجود ڪنهن به اکرن سان ملائي سگهي. جيڪڏھن توھان انھن جي وچ ۾ ڪو به اکر نه وجھو، اھو ھڪڙي غلطي جو سبب بڻجي سگھي ٿو. ھنن خاص اکرن کي ملائڻ لاءِ، اسان کي انھن کان بچڻ گھرجي انھن کان اڳ ۾ ھڪ پٺتي پيل ڪردار سان \. Backslash (يا backslash) هڪ ٻيو خاص ڪردار آهي جيڪو ريجڪس انجڻ کي ٻڌائي ٿو ته ايندڙ ڪردار کي لفظي معنيٰ ۾ ڳولڻ لاءِ، بجاءِ ان کي ميٽا ڪرڪٽر طور استعمال ڪرڻ جي. ريجڪس انجڻ صرف اکرن کي ڳوليندو [۽ ]لفظي طور تي جيڪڏهن اهي ٻئي هڪ پس منظر کان اڳ آهن:
نموني: ]
string: توهان regex استعمال ڪندي [] سان ملائي نٿا سگهو! توهان کي اهو افسوس ٿيندو!
ملندڙ:                  ^^ 
( اچو ته ڏسون ته هن ڀيري ڇا ٿيو ) ٺيڪ، جيڪڏهن اسان پاڻ کي پٺتي پيل ڳولڻ چاهيون ٿا؟ جواب سادو آهي. جيئن ته پٺتي پيل \پڻ هڪ خاص ڪردار آهي، ان کي پڻ فرار ٿيڻ جي ضرورت آهي. ڪيئن؟ پٺاڻ!
نموني: \\
string: C:\Users\Tanja\Pictures\dogs
ملندڙ:    ^ ^ ^ ^
( ساڳيو مثال عملي طور ) صرف خاص اکرن کي پٺتي پيل ڪرڻ گهرجي. ٻيا سڀئي اکر لفظي طور تي ڊفالٽ طور تي بيان ڪيا ويا آهن. مثال طور، باقاعده اظهار tلفظي طور تي صرف tننڍن اکرن سان ملندو آهي:
نموني: t
تار: tttt
ملندڙ: ^ ^ ^ ^
( مثال ) بهرحال، هي سلسلو \tمختلف طرح سان ڪم ڪري ٿو. اهو هڪ ٽيب ڪردار ڳولڻ لاءِ هڪ ٽيمپليٽ آهي:
نموني: \ t
تار: tttt
ملندڙ:   ^ ^ ^
( مثال ) ڪجھ عام فرار جي ترتيبن ۾ شامل آھن \n(UNIX-style line breaks) ۽ \r(used in Windows-style line breaks \r\n). \rهڪ ”ڪيريج ريٽرن“ ڪردار آهي ۽ \nهڪ ”لائن فيڊ“ ڪردار آهي، جن ٻنهي کي ASCII معيار سان گڏ بيان ڪيو ويو آهي جڏهن ٽيلي ٽائپ رائيٽر اڃا وسيع استعمال ۾ هئا. فرار ٿيڻ جا ٻيا عام سلسلو بعد ۾ هن سبق ۾ شامل ڪيا ويندا.

ساڳئي وقت ۾، اچو ته مواد کي ڪجهه سادي پزلن سان گڏ ڪريون:

ڳولڻ لاءِ هڪ ريگولر ايڪسپريشن لکڻ جي ڪوشش ڪريو... هڪ باقاعده اظهار؛) نتيجو ڪجهه هن طرح هجڻ گهرجي:
نموني:
string: ... هن regex ` \[\] ` کي ريجڪس سان ملايو؟
ملندڙ:                       ^^^^	
( حل ) ڇا توهان انتظام ڪيو؟ بهترين! ھاڻي ڪوشش ڪريو ھڪڙو ريجڪس ٺاھيو ھن طرح فرار جي ترتيبن کي ڳولڻ لاءِ:
نموني:
string: ` \ r `، ` \ t `، ۽ ` \ n ` سڀ ريجڪس فرار جي ترتيب آهن.
ملندڙ:   ^^ ^^ ^^
( حل )

قدم 4: ڊٽ استعمال ڪندي "ڪنهن به" ڪردار جي ڳولا ڪريو.

RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 5جڏهن فرار جي ترتيب سان ملندڙ حل لکندي اسان اڳئين قدم ۾ ڏٺا هئا، توهان شايد حيران ڪيو هوندو، "ڇا مان بيڪ سليش ڪردار ۽ پوءِ ان جي پٺيان ايندڙ ڪنهن به ڪردار کي ملائي سگهان ٿو؟"... يقيناً توهان ڪري سگهو ٿا! ھڪڙو ٻيو خاص اکر آھي جيڪو استعمال ڪيو ويندو آھي (تقريبا) ڪنھن اکر سان ملائڻ لاءِ - ڊٽ (فل اسٽاپ) ڪردار. هتي اهو آهي جيڪو اهو ڪري ٿو:
نموني: .
تار: معاف ڪجو، ڊيو. مون کي ڊپ آهي ته مان اهو نه ڪري سگهان.
ملندڙ: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^	
( مثال ) جيڪڏهن توهان صرف نمونن سان ملائڻ چاهيو ٿا جيڪي فرار جي ترتيبن وانگر نظر اچن ٿا، توهان هن طرح ڪجهه ڪري سگهو ٿا:
نموني: \\. 
تار: هاءِ والمارٽ منهنجو پوٽو آهي اتي هن جو نالو آهي " \n \r \t ".
ملندڙ:                                              ^^ ^^ ^^	
( مثال ) ۽، جيئن سڀني خاص اکرن سان، جيڪڏھن توھان چاھيو ٿا ملائڻ لاءِ لغوي اکرن سان .، پوءِ توھان کي ان کي پھريان ڪرڻ گھرجي ھڪ اکر سان \:
نموني: \. 
تار: جنگ امن آهي . آزادي غلامي آهي . جهالت ئي طاقت آهي . 
ملندڙ:             ^ ^ ^
( مثال )

قدم 5: ڪردار جون حدون

RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 6ڇا جيڪڏهن توهان کي ڪنهن به علامت جي ضرورت ناهي، پر صرف متن ۾ اکر ڳولڻ چاهيو ٿا؟ يا نمبر؟ يا واول؟ ڪردار جي طبقن ۽ انهن جي حدن جي ڳولا ڪندي اسان کي اهو حاصل ڪرڻ جي اجازت ڏيندو.
` \ n `، ` \ r `، ۽ ` \ t ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .	
اکر "سفيد اسپيس" آهن جيڪڏهن اهي متن ۾ هڪ نمايان نشان پيدا نه ڪن. هڪ اسپيس " " هڪ اسپيس، لائن بريڪ، يا ٽيب آهي. اچو ته چئو ته اسان فرار جي ترتيبن کي ڳولڻ چاهيون ٿا جيڪي صرف وائيٽ اسپيس اکرن جي نمائندگي ڪن ٿا \n، \r۽ \tمٿين پاسن ۾، پر ٻين فرار جي ترتيبن کي نه. اسان اهو ڪيئن ڪري سگهون ٿا؟
pattern: \\[nrt] 
string: ` \ n `، ` \ r `، ۽ ` \ t ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:   ^^ ^^ ^^	
( مثال ) هي ڪم ڪري ٿو، پر اهو هڪ تمام خوبصورت حل ناهي. ڇا جيڪڏهن بعد ۾ اسان کي ”فارم فيڊ“ ڪردار لاءِ فرار جي ترتيب سان ملائڻ جي ضرورت آهي \f،؟ (هي علامت متن ۾ صفحي جي وقفي کي ظاهر ڪرڻ لاءِ استعمال ڪيو ويندو آهي.)
pattern: \\[nrt] 
string: ` \ n `، ` \ r `، ` \ t `، ۽ ` \ f ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:   ^^ ^^ ^^	
( ڪم ڪندڙ حل نه آهي ) هن طريقي سان، اسان کي الڳ الڳ فهرست ڪرڻ جي ضرورت آهي هر هڪ ننڍڙي اکر جنهن کي اسين ملائڻ چاهيون ٿا، چورس بریکٹ ۾. اهو ڪرڻ جو هڪ آسان طريقو آهي ڪردار جي حدن کي استعمال ڪرڻ لاءِ ڪنهن به ننڍي اکر سان ملائڻ لاءِ:
pattern: \\[az] 
string: ` \ n `، ` \ r `، ` \ t `، ۽ ` \ f ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:   ^^ ^^ ^^ ^^	
( ۽ اهو اڳ ۾ ئي ڪم ڪري ٿو ) ڪردارن جون حدون ڪم ڪن ٿيون جيئن توهان توقع ڪري سگهون ٿا، مٿي ڏنل مثال ڏنو ويو آهي. پهرين ۽ آخري اکرن جي چوڌاري چورس بریکٹس رکو جنهن کي توهان ملائڻ چاهيو ٿا، وچ ۾ هڪ هائفن سان. مثال طور، جيڪڏهن توهان صرف پسمنظر جي "سيٽ" کي ڳولڻ چاهيو ٿا \۽ هڪ اکر کان aڏانهن m، توهان هيٺيان ڪري سگهو ٿا:
pattern: \\[am] 
string: ` \ n `، ` \ r `، ` \ t `، ۽ ` \ f ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:                         ^^	
( مثال ) جيڪڏھن توھان چاھيو ٿا گھڻن حدن کي ملائڻ، بس انھن کي آخر کان آخر تائين چورس بریکٹ جي وچ ۾ رکو.
pattern: \\[a-gq-z] 
string: ` \n `، ` \r `، ` \t `، ۽ ` \f ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:         ^^ ^^ ^^	
( مثال ) ٻين عام ڪردارن جي حدن ۾ شامل آهن: A-Z۽0-9

اچو ته انھن کي عملي طور تي ڪوشش ڪريو ۽ ڪجھ مسئلا حل ڪريو:

Hexadecimal انگن اکرن 0-9۽ انگن تي مشتمل ٿي سگھي ٿو A-F. جڏهن رنگن جي وضاحت ڪرڻ لاءِ استعمال ڪيو ويندو، هيڪساڊيڪل ڪوڊ ۾ وڌ ۾ وڌ ٽي اکر شامل هوندا. هيٺ ڏنل فهرست ۾ صحيح هيڪساڊيڪل ڪوڊ ڳولڻ لاءِ باقاعده اظهار ٺاهيو:
نموني:
تار: 1H8 4E2 8FF 0P1 T8B 776 42B G12
ملندڙ:      ^^^ ^^^ ^^^ ^^^	
( حلy ) ڪردارن جي حدن کي استعمال ڪندي، ھڪڙو باقاعده اظهار ٺاھيو جيڪو ھيٺ ڏنل جملي ۾ صرف ننڍو ڪنسوننٽس (نه واول، بشمول ) چونڊيو .
نموني:اسٽرنگ 
: ٽي وي ايل ايلس آءِ نٿ ايم اي ايل آر اي ٽي ايل ايل ، ٽي او ٽي ايل ايل ايل . _ _ _ _ _ _ 
ملندڙ:   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^	
( حل )

قدم 6: "نه"، ڪيريٽ، سرمفلڪس، ڪيريٽ... علامت^

RegEx: 20 مختصر قدم باقاعده اظهار جي ماهر ڪرڻ لاء.  حصو 1 - 7درحقيقت، هن علامت لاءِ 9000 کان مٿي نالا آهن :) پر، سادگي لاءِ، شايد اسان ”نه“ تي ڌيان ڏينداسين. آخري مسئلي جو منهنجو حل ٿورڙو ڊگهو آهي. اهو چوڻ لاءِ 17 اکر ٿيا "سڀني الفابيٽ حاصل ڪريو سواءِ واولن جي." يقينن، اهو ڪرڻ جو هڪ آسان طريقو آهي. "نه" جي نشاني ^اسان کي اجازت ڏئي ٿي ته اکر ۽ اکر جي حدن کي بيان ڪريون جيڪي نموني ۾ بيان ڪيل انهن سان نه هجن. مٿي ڏنل آخري مسئلي جو هڪ آسان حل اهو آهي ته اهڙن اکرن کي ڳولجي جيڪي حرف جي نمائندگي نٿا ڪن:
نمونو: [^aeiou] 
تار:   Th e w a lls i n the m a ll a r e t o t a lly، t o t a lly t a ll . 
ملندڙ: ^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 	
( مثال^ ) چورس بریکٹس اندر کاٻي پاسي واري اکرن جي طور تي ”نه“ جي نشاني []ريگيولر ايڪسپريس انجڻ کي ٻڌائي ٿي ته هڪ (ڪنهن به) ڪردار سان ملائي جيڪو چورس بریکٹس ۾ نه هجي. هن جو مطلب اهو آهي ته مٿيون باقاعده اظهار هڪ جملي جي شروعات ۾ سڀني جڳهن، دورن .، ڪاما ,، ۽ ڪئپٽلن سان پڻ ملندو آهي. Tانھن کي خارج ڪرڻ لاء، اسان انھن کي چورس بریکٹ ۾ پڻ رکي سگھون ٿا:
نمونو: [ ^ aeiou . ,T] اسٽرنگ  
: The w a lls i nthe m a ll a r e t o t ali , t o t a li t a ll . 
ملندڙ:   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^	
( مثال ) نوٽانهي صورت ۾، اسان کي پوئتي سليش سان دور کان بچڻ جي ضرورت ناهي، جيئن اسان اڳ ۾ ڪيو هو جڏهن اسان چورس بریکٹ استعمال ڪرڻ کان سواء ان کي ڳوليندا هئاسين. چورس بریکٹ ۾ ڪيترائي خاص اکر لفظي طور استعمال ڪيا ويندا آهن، بشمول کليل [- پر بند نه - ]بریکٹ ڪردار (ڇا توهان اندازو لڳائي سگهو ٿا ڇو؟). پٺتي پيل ڪردار \پڻ لفظي طور تي تشريح نه ڪئي وئي آهي. جيڪڏهن توهان چورس بریکٹ استعمال ڪندي لفظي پسمنظر سان ملائڻ چاهيو ٿا \، ته پوءِ توهان کي ان کان بچڻ گهرجي ان کي اڳئين پٺڀرائي هيٺ ڏنل بيڪ سليش سان \\. اهو رويو ڊزائين ڪيو ويو آهي ته جيئن وائيٽ اسپيس اکرن کي به ملائڻ لاء چورس بریکٹ ۾ رکي سگهجي ٿو:
نموني: [\t]
تار: tttt
ملندڙ:   ^ ^ ^
( مثال ) "نه" نشاني ^پڻ حدن سان استعمال ڪري سگھجي ٿي. جيڪڏهن مان صرف ڪردارن کي پڪڙڻ چاهيان ٿو a، b, c, x, yand z, مان ڪجهه هن طرح ڪري سگهان ٿو:
نمونو: [abcxyz] 
اسٽرنگ:   abc defghijklmnopqrstuvw xyz 
ميچز: ^^^ ^^^
( مثال ) ... يا، مان وضاحت ڪري سگهان ٿو ته مان ڪو به ڪردار ڳولڻ چاهيان ٿو جيڪو وچ ۾ نهd هجي ۽ w:
نمونو: [^dw] 
تار:   abc defghijklmnopqrstuvw xyz 
ميچز: ^^^ ^^^
( مثال ) بهرحال،خيال رکجو"نه" سان ^. اهو سوچڻ آسان آهي "چڱو، مون بيان ڪيو آهي [^ b-f]، تنهنڪري مون کي ننڍو اکر aيا ٻيو ڪجهه حاصل ڪرڻ گهرجي بعد ۾ f. اهو معاملو ناهي. هي ريجڪس ڪنهن به اکر سان ملندو جيڪو ان حد ۾ نه هوندو، جنهن ۾ اکر، انگ، اوقاف ۽ اسپيس شامل آهن.
نمونو: [^dw] 
تار:   abc defg h . i ، j - klmnopqrstuvw xyz 
ميچز: ^^^ ^ ^ ^ ^ ^ ^ ^
( مثال )

ڪمن کي برابر ڪرڻ:

استعمال ڪريو "نه" نشاني ^چورس بریکٹ ۾ هيٺ ڏنل سڀني لفظن سان ملائڻ لاءِ جيڪي ختم نه ٿين y:
نموني:
string: day dog ​​hog hay bog Bay ray rub 
matches:      ^^^ ^^^ ^^^ ^^^	
( حل^ ) 1977 ۽ 1982 جي وچ ۾ سمورا سال ڳولڻ لاءِ حد ۽ "نه" نشاني استعمال ڪندي هڪ باقاعده اظهار لکو (شامل):
نموني:
تار: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984
ملندڙ:            ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^
( حل ) سڀني اکرن کي ڳولڻ لاءِ هڪ ريگولر ايڪسپريشن لکو جيڪي ”نه“ نشاني وارا اکر نه آهن ^:
نموني:
تار:   abc1 ^ 23*() 
ملن: ^^^^ ^^^^^	
( حل )

قدم 7: ڪردار ڪلاس

ڪردار جا طبقا ڪردار جي حدن کان به وڌيڪ آسان آهن. مختلف ريگيولر ايڪسپريس انجڻن ۾ مختلف ڪلاس موجود آهن، ان ڪري مان هتي صرف مکيه کي ڍڪيندس. (پڙتال ڪريو ته ريجڪس جو ڪهڙو نسخو توهان استعمال ڪري رهيا آهيو، ڇاڪاڻ ته ٿي سگهي ٿو انهن مان وڌيڪ - يا اهي هتي ڏيکاريل انهن کان مختلف هجن.) ڪردار جا ڪلاس لڳ ڀڳ حدن وانگر ڪم ڪن ٿا، پر توهان 'شروع' ۽ 'آخر' قدرن جي وضاحت نٿا ڪري سگهو:
ڪلاس علامتون
\d "نمبر"[0-9]
\w "لفظ جا نشان"[A-Za-z0-9_]
\s "خالي"[ \t\r\n\f]
"لفظ" ڪردار ڪلاس \wخاص طور تي ڪارائتو آهي ڇاڪاڻ ته هي ڪردار سيٽ اڪثر ڪري مختلف پروگرامنگ ٻولين ۾ صحيح سڃاڻپ ڪندڙ (متغير نالا، فنڪشن جا نالا، وغيره) جي ضرورت هوندي آهي. اسان \wباقاعده اظهار کي آسان ڪرڻ لاء استعمال ڪري سگهون ٿا جيڪو اسان اڳ ۾ ڏٺو هو:
pattern: \\[az] 
string: ` \ n `، ` \ r `، ` \ t `، ۽ ` \ f ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:   ^^ ^^ ^^ ^^	
استعمال ڪندي \wاسان هن طرح لکي سگهون ٿا:
pattern: \\\w 
string: ` \ n `، ` \ r `، ` \ t `، ۽ ` \ f ` اڇا اسپيس اکر آهن ، ` \. `، ` \\ ` ۽ ` \[ ` نه آهن .
ملندڙ:   ^^ ^^ ^^ ^^	
( مثال )

قسمت جا 2 ڪم:

جيئن ته توهان ۽ مان ڄاڻون ٿا، جاوا ۾، هڪ سڃاڻپ ڪندڙ (هڪ متغير جو نالو، ڪلاس، فنڪشن، وغيره) صرف اکر سان شروع ٿي سگهي ٿو a- zA- Z، ڊالر جي نشاني $يا انڊر اسڪور _. ( انڊر لائننگ، يقينا، خراب انداز آهي، پر مرتب ڪندڙ ان کي ڇڏي ٿو، مترجم جو نوٽ ). باقي ڪردارن کي "لفظ" اکر هجڻ گهرجي \w. هڪ يا وڌيڪ ڪردارن جا ڪلاس استعمال ڪندي، هيٺ ڏنل ٽن-ڪردارن جي ترتيبن مان صحيح جاوا سڃاڻپ ڪندڙ ڳولڻ لاءِ باقاعده اظهار ٺاهيو:
نموني:
string:   __e $12 .x2 foo بار 3mm
ملندڙ: ^^^ ^^^ ^^^ ^^^	
( حل ) يو ايس سوشل سيڪيورٽي نمبرز (SSN) 9-عددي نمبر آهن فارميٽ ۾ XXX-XX-XXXX، جتي هر X ڪو به عدد ٿي سگهي ٿو [0-9]. هڪ يا وڌيڪ ڪردارن جا ڪلاس استعمال ڪندي، هيٺ ڏنل فهرست ۾ صحيح فارميٽ ٿيل SSN ڳولڻ لاءِ باقاعده اظهار لکو:
نموني:
تار: 113-25=1902 182-82-0192 H23-_3-9982 1I1-O0-E38B
ملندڙ:              ^^^^^^^^^^
( حل ) RegEx: 20 مختصر مرحلا ريگيولر ايڪسپريشنز ۾ مهارت حاصل ڪرڻ لاءِ. حصو 2. باقاعده اظهار ۾ مهارت حاصل ڪرڻ لاءِ 20 مختصر قدم. حصو 3. RegEx: 20 مختصر مرحلا ريگيولر ايڪسپريشنز ۾ مهارت حاصل ڪرڻ لاءِ. حصو 4.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION