Prepared By: Mohamed Mahmoud Fouad http://www.eng-mmf.com
بسم هللا امرمحن امرحمي امسالم ؿوينك ورمح هللا وبراكث, موضوع اميوم و Regular Expression و ابمربية و يعوق ؿوهيا أيضا regex و. regexp "امخابري املياسية" نام يسمهيا امبظ. ملدمة: بفرض أهم ثلوم بمل برانمج ما, و حريد امت أند من حصة ا إلميل املكذوب, ل و مكذوب فال ؿىل امطيغة امطحيحة example@webiste.com ثالحغ أه لبد أن يبدأ مبجموؿة من احلروف أو الركام, يوهيا ؿالمة @ مث امس املوكؽ مث ؿالمة ادلوت. مث اخلامتة مثال com أيضا كد حتخاج نوخأ ند من حصة امس املس خخدم مثال لبد أن يكون حروف فلط أو حروف مؽ أركام بدون ؿالمات خاضة. أيضا كد حتخاج نوبحر داخل هص مني ؾن شلك مني مثال حريد امبحر ؾن لك املكامت اميت ثبدأ حبرف حرف a regex كد حكون امموية مر لة خدا ومكن مؽ ام. h مثال حريد امخأ ند من حصة رمق املوابيل أو رمق Credit Card لك شئ س ل. فاحلل و Regular Expression يوهيا حرفني مث ما يه Regular Expression ببساظة شديدة, يه ظريلة جسمح ميا ابمبحر داخل اميطوص و معل ملارهة نويطوص ابسخخدام pattern مني. و ػ رت ذ امعريلة ىف امبداية نوخامل مؽ اميطوص ىف هؼام امدشغيل. Unix و ام regex غري خمخص بوغة برجمة ميية, و امنا ميكن اسخخدام ىف مؼم مغات امربجمة هؼرا ملوث ىف امخامل مؽ اميطوص و امبحر داخو ا. فميكن اسخخدام مؽ Java,,#c PHP,,++C Perl, Python و املزيد من مغات امربجمة. نام ميكن اسخخداهما ىف. Unix Shell
و اجلدير ابذلهر أن مؼم حمررات اميطوص جسمح ابمبحر داخل اميطوص ؾن ظريق اس خخدام. regex و هؼرا مخدد الدوات و ثدد امعرق و مغات امربجمة اميت جسخخدم ام امخعبيلات و امامترين ؿوهيا regex سوف وس خخدم ذ امطفحة اميت مقت بخطممي ا ممل http://regex.eng-mmf.com/, مث هلوم إابدخال اميص ونام و واحض من امطورة, هلوم بوضؽ ام regext أو ام pattern املراد امبحر ؾي اذلي س يعبق ؿوي. و لس خخدام ال regex مؽ مغات امربجمة Java مغة o http://java.sun.com/docs/books/tutorial/essential/regex/index.html c# مغة o http://www.c-sharpcorner.com/uploadfile/prasad_1/regexppsd12062005021717am/regexppsd.aspx PHP مغة o http://www.phpf1.com/tutorial/php-regular-expression.html فويبدأ ؿىل برنة هللا.
نوبحر ؾن لكمة داخل هص مني, ىكذب املكمة نام ىه نوبحر ؾن املكمة يف بداية اميص وس خخدم ؿالمة ^ و جسمي caret نوبحر ؾن املكمة يف هناية اميص وس خخدم $ و مكن يف هناية املكمة Escaping بظ امالمات )مثل. و *( م ا مدمول خاص ؾيد ام regular expression ذلا هلوم بمل escaping م ا إاذا أردان امبحر ؾهنا داخل اميص. ف لوم بمل escaping ؾن ظريق اسخخدام \. مثال ىريد امبحر ؾن.com ` موحوػة : regex امللدة., إاذا مقيا ابمبحر بدون معل escaping س خمل بيجاح و مكن يفضل معل escaping م ا و خاضة مؽ
llo مث يوهيا حرف مث يوهيا h ادلوت. جسخخدم نوخبري ؾن أى حرف مثال إاذا أردان امبحر ؾن املكامت امىت ثبدأ حبرف و إاذا أردان امبحر ؾن املكامت امىت ثبدأ بأ ى حرف يوي ood Pattern Searching جسخخدم الكواس [] نوبحر ؾن شلك مني مثال: b نوبحر داخل اميص ؾن احلرف a أو احلرف أو احلرف c a f بني small letters نوبحر ؾن أحد احلروف الاجنوزيية
نوبحر ؾن أحد احلروف ا إلجنوزيية small letters )مو وخد حرف واحد, سي جح امبحر( $ ماذا مو اردان أن يكون ذا احلرف ىف أول املكمة, وسخخدم ^ و كذا ظبا ىف اههناية وس خخدم مو أردان امبحر ؾن حرف ابنوغة ا إلجنوزيية Capital Letter نام اثفل ا, ف إاه إاذا وخد حرف واحد سد جح امموية. نام ميكن امخحنك ىف ماكن احلرف ؾن ظريق ^ و $ مو أردان امبحر ؾن أحد احلروف الاجنوزيية small أو capital
مو أردان امبحر ؾن أحد الركام pattern وسخخدم ^ و مكن داخل pattern [0-9] pattern وابمخاىل اذا وخد حرف ثيج امموية Complement Operator مو أردان امبحر ؾن أى شئ غري معابق م مثال يا هبحر أن أى شئ غري موحود ب اذا أردان امبحر ؾن رمق يوي حرف A html( )css, php, داخل اميص وسخخدم OR Operator اذا اردان امبحر ؾن احدى املكامت
Quantifiers امة خدا مخحديد ؿدد مرات امخكرار * + ضفر أو أنرث مرة أو أنرث? ضفر أو واحد {n} ؿدد مرات امخكرار = n مثال 5 مرات {n,m} مثال ؿدد مرات امخكرار من 1 ل 7 مرات, maximum n= mimum, m = {,m} من ضفر م m {n,} من n م مالهناية a نوخوضيح : نوبحر ؾن امكامت امىت ثبدأ حبرف و يوي حرف b مكرر مرة أو أنرث ) * = نوبحر ؾن املكامت امىت ثبدأ حبرف h و ث هتى حبرف o مىن ذكل أن بيهنام حرف أو أنرث أو ليوخد حروف )ضفر أو أنرث *, مقيا ابس خخدما. نوخبري ؾن أى حرف و ىريد حتديد امخكرار ضفر أو أنرث وس خخدم
مو أردان امبحر ؾن املكامت امىت حتخوى ؿىل حرف o مكرر مرثني فلط. مو أردان امبحر ؾن املكامت امىت حتخوى ؿىل حرف o مكرر من مرة إاىل أربؽ مرات :,, s مو أردان امبحر ؾن املكمة امىت ثبدأ ب th يوهيا حرف أو أنرث وث هتى حبرف س يفكر اكمخاىل و مكن مو اكن اميص اكمخاىل سد ج, ومك س يود ابميص امخاىل this is mmf s أى أه بدأ من أول th ؿرث ؿوهيا إاىل أخر s وخد ا, و ذ مشلكة ىف حد ذاهتا!!! موحوػة: ميكن مرفة ماثود ب بد امبحر ؾيد اسخخدام ادلوال اخلاضة بوغة امربجمة امىت سدسخخدهما.
نوخفكري ىف المر, ىريد أن يبحر ؾن املكمة امىت ثبدأ ب th مث حرف أو أنرث مث حرف s مث ي هتى امبحر ؾيد أول s جيد ا. ماذا مو فكران ابمكس!!! مبىن, اهيا ىريد امبحر ؾن املكامت امىت ثبدأ ب th مث حرف أو أنرث )و ذا احلرف ميس حرف ) s مث حرف امبحر. s مث أوكف [s^] ميا ا احبر ؾن أى حرف ميس حرف s و ذا ميا أه اذا وخد حرف s س يلف امبحر * ميا ا ؿدد احلروف بني th و s حرف أو أنرث. ممل و أخريا, grouping regex, أى جتميؽ الش ياء مؽ بض ا نومحافؼة ؿىل اميؼام وس خخدم )( و جس يل كراءة ام موحوػة: \ كد جتد بد امربامج أو الدوات امىت جتربك ؿىل وضؽ ام regex بني \ و ملد, اىهتييا من مؼم ام regular expressions و سيأخد مجموؿة من المثةل من احلياة امموية.
امخأ ند من امس املس خخدم مثال ىريد أن يكون امس املس خخدم ما بني 4 إاىل 20 حرف حيخوى ؿىل أركام أو حروف ليوخد special chars ماؿدا _ موحوػة : اسخخدم ا ^ و $ لن امس املسخخدم لبد أن يكون ىف امبداية و اههناية أيضا )أى أه ليوخد هص هبري سيبحر بداخهل و امنا لكمة واحدة. أيضا مت وضؽ _ داخل ام pattern وابمخاىل س يلوم ابمبحر ؾن احلروف أو الاركام أو _. سؤال : مق بمل regex نوخأ ند من حصة امس املس خخدم برشط أن حيخوى ؿىل حروف فلط أل يلل امس املسخخدم ؾن 6 أحرف.
امخأند من الموانColor Hexadecimal الموان حكذب بيؼام Hexadecimal اذلى يمتزي بأه حيخوى ؿىل الركام من 0 اىل 9 و احلروف من a اىل f نام ميكن نخابة انوون بأنرث من ظريلة مثال #cde أو #cc6600 والك ام حصيح. أى ميكن أن يكون انوون مكون من زالث أو سخة أحرف و أركام. و ابمخاىل س سخخدم املامل or و اذلى يرمز هل ب لحغ مايىل : لبد وأن حكون ؿالمة # ىف بداية انوون )ذلا مت وض ا ىف امبداية( )موحوػة: ميس رشط أن يبدأ انوون بالمة # اشرتظيا وحود امالمة ىف امبداية ) مت اسخخدام نوفطل بني امطيغخني اخملخوفذني نوون. مت معل امباحرن مخبدأ من a اىل f نام اثفل ا ف ذ ىه احلروف املسموح هبا ىف اميؼام امسداىس ؾرش. ومك يا يا o o o أين اسخخدم ذ امطيغة )مىت احذاج أن أثأند من الموان ) كد حكون ذ امطيغة غري شائة الاسخخدام, و مكن اذا مقت بخطممي برانمج مخحرير امطور سخحخاج نوخأند من الموان و اذا مقت بمل برانمج و ثعوب من املسخخدم ادخال موان ما, فيجب امخأند من انوون كد نخب ابمعريلة امطحيحة.
, امخأ ند من ا إلمييل : نثري ماحنخاج أن هخأ ند من حصة الامييل ل و ؿىل امطيغة امطحيحة أم ل و خاضة ىف ثعبيلات امويب. و ميكن ثوخيص امشلك امام م إالمييل اكمخاىل : )letter & num &. - _ ) @ (letters & num & -). (letters with length 2-5( يبدأ بأركام أو حروف أو. أو أو _ أو خويط مهنم. مث يوهيا ؿالمة @ مث امس املوكؽ ( أركام أو حروف أو خويط و يسمح ب - ) مث ادلوت. و نوخذهرة )يفضل معل escaping م ا ؾن ظريق اسخخدام.\, و أخري امالحلة com أو net ويفضل حتديد ظول من 2 اىل 5 أحرف هؼرا لن م ا مدمول ؾيد ال )regex لث ىس حتديد ظول ملك مهنم, مبىن وسخخد مثال + نوخبري ؾن مرة أو أنرث س يكون ابمشلك امخاىل : أؾخلد أهنا واحضة خدا سؤال : ملاذا مقيا بوضؽ. داخل الكواس امخامية م ؿالمة @.com أو.net مبارشة ببساظة شدية, لن بظ ادلومييات لث هتى ب كد ث هتى ب.com.eg أو.edu.eg ؿىل سبيل املثال و ابمخاىل وضؽ. سدسمح ابمكشف ؾن ثكل ادلومييات. و حاول بيفسم مثل: mmf@itec.net.eg
مق ابمخعبيق بيفسم, و سخجد امديد من المثةل الخرى مثال امخأند من ؾيوان املوكؽ, و رمق Credit Card و رمق اجلوال. : مقيا بخغعية مؼم ماحتخاخ ىف املوضوع, و نومزيد ؾن http://www.regular-expressions.info/ http://gnosis.cx/publish/programming/regular_expressions.html regual Expression مق بزايرة املواكؽ امخامية ظبا, اذا وخدت أى خعأ, أو واهجت أى مشلكة لثرتدد ىف الثطال ىب و ان شاء هللا من أثأخر ىف امرد ؿويم. اكهت ذ حماوةل مخوضيح المر أنرث, أمتين أن أهون كد وفلت يف ذ امل مة, و أن حكون حللت الاسخفادة. ابمخوفيق نوجميؽ ان شاء امرمحن. مؽ خامص حتياىت أخومك M.M.F www.eng-mmf.com