اچو ته باقاعده اظهار جو مطالعو جاري رکون. هن آرٽيڪل ۾ اسين اڳواٽ بيان ڪيل ڪردارن جي طبقن سان گڏوگڏ مقدار جي مقدار کي ڏسندا سين (سلسلن جي ڳولا).
اڳواٽ بيان ڪيل ڪردار جا ڪلاس
ڪلاس APIPattern
۾ اڳواٽ بيان ڪيل ڪردار ڪلاس شامل آهن جيڪي عام طور تي استعمال ٿيندڙ باقاعده اظهار لاءِ آسان شارٽ ڪٽ پيش ڪن ٿا. ھن جدول ۾، کاٻي ڪالم ۾ ٺھيل آھن ساڄي ڪالمن ۾ اظهار جي مختصر ھٿ جي نمائندگي. مثال طور، \d
هڪ نمبر جو مطلب آهي (0-9)، \w
مطلب ته ڪو به وڏو يا ننڍو اکر، هيٺيون يا نمبر). جڏهن به ممڪن هجي اڳواٽ بيان ڪيل ڪردار ڪلاس استعمال ڪريو. اهو توهان جي ڪوڊ کي پڙهڻ ۽ غلطين کي درست ڪرڻ آسان بڻائي ڇڏيندو. بيڪ سليش سان شروع ٿيندڙ تعميرات کي فرار يا محفوظ سڏيو ويندو آهي. پوئين مضمونن ۾، اسان اڳ ۾ ئي خاص ڪردارن کي پٺتي پيل يا علامتن سان فرار ڪرڻ \Q
۽ \E
انهن کي باقاعده ڪردارن طور استعمال ڪرڻ بابت ڳالهايو آهي. جيڪڏهن توهان باقاعده اکرن (لفظي) سان هڪ پٺتي سليش استعمال ڪريو ٿا، ته پوء توهان کي گڏ ڪرڻ لاء اظهار لاء بيڪ سليش کان بچڻ جي ضرورت آهي.
private final String REGEX = "\\d"; // цифра
هن مثال ۾ \d
، هڪ باقاعده اظهار؛ پروگرام کي گڏ ڪرڻ لاء اضافي پٺتي پيل ضروري آهي. اسان جو ٽيسٽ پروگرام سڌو سنئون ڪنسول مان باقاعده اظهار پڙهي ٿو، تنهنڪري اضافي سليش جي ضرورت ناهي. هيٺيون مثال اڳواٽ بيان ڪيل ڪردار جي طبقن جي استعمال کي ظاهر ڪري ٿو: پهرين ٽن مثالن ۾، باقاعده اظهار صرف " .
" (ڊٽ خاص ڪردار) آهي، جنهن جو مطلب آهي ڪو به ڪردار. تنهن ڪري، ڳولا هر صورت ۾ ڪامياب ٿي. ٻيا مثال اڳواٽ بيان ڪيل ڪردار طبقن کي استعمال ڪن ٿا، جن جي معني اسان مٿي ڏنل جدول ۾ بحث ڪيو آهي.
مقداري
Quantifiers توهان کي اسٽرنگ ۾ هڪ ڪردار جي واقعن جو تعداد بيان ڪرڻ جي اجازت ڏين ٿا. اچو ته هڪ ويجهڙائي تي نظر رکون ته ڪيئن لالچي، سست، ۽ تمام لالچي مقدار جي ڪم ڪن ٿا. پهرين نظر ۾ اهو لڳي سگھي ٿو ته quantifier X؟, X?? ۽ X؟+ ساڳئي طريقي سان ڪم ڪريو: "X هڪ ڀيرو موجود آهي يا نه. انهن quantifiers جي عمل ۾ ٿورو اختلاف آهن، جنهن کي اسين هيٺ ڏسندا سين.صفر ڊگھائي ملن ٿا
اچو ته لالچي سان شروع ڪريون. اچو ته ٽي مختلف باقاعده اظهار لکون: خاص اکرن سان "a" اکر؟، * يا +. اچو ته ڏسون ته ڇا ٿيندو جيڪڏهن اسان انهن باقاعده اظهارن کي خالي لڪير تي آزمايو: مٿين مثال ۾، ڳولا پهرين ٻن ڪيسن ۾ ڪامياب ٿي، ڇاڪاڻ ته اظهار a؟ ۽ a* ڪردار a کي تار مان غائب ٿيڻ جي اجازت ڏيو. اهو پڻ نوٽ ڪريو ته شروعات ۽ آخري ميچ انڊيڪس ساڳيا آهن (0). جيئن ته ان پٽ اسٽرنگ جي ڪا ڊگھائي نه آهي، ان ڪري پروگرام ڪجھ به نه ٿو ملي :) پهرين پوزيشن ۾. اهو ڪيس صفر-لمبائي ميچ سڏيو ويندو آهي. اهڙيون ميچون ڪيترن ئي ڪيسن ۾ ٿينديون آهن: جڏهن ان پٽ لائين خالي هجي، ان پٽ لائين جي شروعات ۾، لڪير جي آخري ڪردار کان پوءِ، يا لڪير ۾ ڪردارن جي وچ ۾. زيرو ڊگھائي ميچون آسانيءَ سان ڏسڻ ۾ اچن ٿيون: اھي شروع ۽ ختم ساڳي پوزيشن تي. اچو ته ڏسون ڪجهه وڌيڪ مثالن جي صفر-لمبائي ميچن جا. اچو ته ڪجهه وڌيڪ مثالن سان صفر-لمبائي ميچن کي ڳوليون. اچو ته ان پٽ اسٽرنگ کي ڪردار "a" ۾ تبديل ڪريون ۽ هڪ دلچسپ اثر ڏسو: سڀني ٽن quantifiers ڪردار "a" کي مليو، پر پهريان ٻه، جيڪي هڪ ڪردار جي غير موجودگي جي اجازت ڏين ٿا، پوزيشن 1 تي صفر-لمبائي ميچ مليا. - تار جي آخري ڪردار کان پوء. اهو ٿي سگهي ٿو ڇاڪاڻ ته پروگرام ڪردار "a" کي اسٽرنگ جي طور تي علاج ڪري ٿو ۽ ان جي ذريعي "هلائي ٿو" جيستائين وڌيڪ ميچ نه آهن. استعمال ڪيل مقدار جي بنياد تي، پروگرام سٽ جي آخر ۾ "ڪجھ به" نه ملندو يا نه ملندو. ھاڻي اچو ته ان پٽ اسٽرنگ کي پنجن اکرن جي تسلسل ۾ تبديل ڪريون "a": Regular expression a؟ سٽ ۾ هر اکر لاءِ الڳ الڳ ملندو. اظهار a* ٻه ميچون ڳولي ٿو: ڪردار جي ترتيب "a"' ۽ هڪ صفر-لمبائي ميچ پوزيشن 5 تي. ۽ آخر ۾، ريگيولر ايڪسپريشن a+ صرف اکرن جي تسلسل کي ڳولي ٿو "a"، بغير "ڪجھ به نه" ڳولڻ جي :) ڇا ٿيندو جيڪڏهن مختلف اکرن تي مشتمل هڪ اسٽرنگ ان پٽ طور ڏنو وڃي؟ مثال طور، "ababaaaab": ڪردار "b" پوزيشن 1، 3، ۽ 8 ۾ آهي ۽ پروگرام انهن پوزيشن تي صفر-لمبائي ميچ ڳولي ٿو. باقاعده اظهار الف؟ "b" تي ڌيان نه ڏيندو آهي، پر صرف "a" ڪردار جي موجودگي (يا غير موجودگي) کي ڳولي ٿو. جيڪڏهن quantifier "a" جي غير موجودگي جي اجازت ڏئي ٿو، "a" کان سواء اسٽرنگ ۾ سڀني اکرن کي صفر-لمبائي ميچ طور ڏيکاريو ويندو. ڏنل ڊگھائي جي تسلسل کي ڳولڻ لاءِ، صرف گھڙيل ڪنگڻ ۾ ڊگھائي بيان ڪريو: باقاعده اظهار a{3} ٽن "a" اکرن جي تسلسل کي ڳولي ٿو. پهرين لڪير ۾ ڪجھ به نه مليو ڇو ته ڪافي نه هئا لڪير ۾. ٻيو 3 اکرن تي مشتمل آهي، جيڪو پروگرام ڳولي ٿو. ٽيون ٽيسٽ پڻ اسٽرنگ جي شروعات ۾ هڪ ميچ ڳولي ٿو. 3rd ڪردار کان پوءِ هر شيءِ باقاعده اظهار کي پورو نٿو ڪري، هيٺ ڏنل ڪوڊ ۾ اهو ڪندو آهي ۽ اتي ڪيترائي ميلا هوندا: گهٽ ۾ گهٽ تسلسل جي ڊيگهه کي بيان ڪرڻ لاءِ، استعمال ڪريو:Enter your regex: a{3,}
Enter input string to search: aaaaaaaaa
I found the text "aaaaaaaaa" starting at index 0 and ending at index 9.
هن مثال ۾، پروگرام صرف هڪ ميچ ڳولي ٿو ڇاڪاڻ ته اسٽرنگ (3) "a" اکرن جي گهٽ ۾ گهٽ ترتيب جي ڊيگهه جي گهرج پوري ڪري ٿي. آخرڪار، ترتيب جي وڌ ۾ وڌ ترتيب جي ڊيگهه: هن مثال ۾، پهرين ميچ ڇهين ڪردار تي ختم ٿي وئي. ٻئي ميچ ۾ ڇهين کان پوءِ اکر شامل آهن، ڇاڪاڻ ته اهي گهٽ ۾ گهٽ ڊيگهه جي گهرج کي پورو ڪن ٿا. جيڪڏهن اسٽرنگ هڪ اکر ننڍو هجي ها ته ٻي ڪا به ميچ نه هجي ها.
GO TO FULL VERSION