مقدمة في التعابير النمطية Regular Expressions - كونتكس ديف - طريقك لاحتراف البرمجة
  التسجيل   سبحان الله وبحمده   قائمة الأعضاء   التقويم   البحث   مشاركات اليوم   اجعل كافة الأقسام مقروءة


إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
Lightbulb  مقدمة في التعابير النمطية Regular Expressions
كُتبَ بتاريخ: [ 06-08-2015 - 04:45 PM ]
رقم المشاركة : ( 1 )
الصورة الرمزية Ahmed Tag Amer
 
Ahmed Tag Amer
.:: المدير العام ::.
.:: مشرف قسم الابداع الشخصي ::.
Ahmed Tag Amer غير متواجد حالياً
 
رقم العضوية : 3
تاريخ التسجيل : Dec 2014
مكان الإقامة :
عدد المشاركات : 174
عدد النقاط : 10
قوة التقييم :


نحتاج في أحيانٍ كثيرة إلى إدخال تعديلات محدّدة على بعض الملفات، فمديرو نظم التشغيل يحتاجون أحيانًا إلى تعديل مجموعة فقط من عناوين الـ IP التي تنتمي إلى فئة ما، أو مجموعة من أسماء النطاقات domains (أو النطاقات الفرعية)، بل ربما احتاج أحدنا إلى تصحيح بعض الأخطاء الكتابية المتكرّرة في ملفٍ طويل، كحذف الأسطر الفارغة مثلًا، أو المسافات الفارغة في بدايات الأسطر، تغطّي التعابير النمطيّة Regular Expressions التعامل مع هذا النوع من المشاكل.
التعابير النمطيّة هي أسلوب يُستخدم لوصف النصوص والتعرّف عليها من خلال مطابقتها (أو عدم مطابقتها) مع رموز محدّدة، وتنتشر تطبيقاتها في عدد متزايد من برامج معالجة النصوص، ومحرّرات اللغات البرمجيّة وغيرها. نتناول في هذا الدرس شرح أساسيات التعامل مع هذه التعابير دون تخصيص الحديث عن برنامج ما، حيث سنستخدم الأداة egrep في أمثلتنا (والتي تستخدم للبحث ضمن الملفات النصيّة أو دخل المستخدم عن طريق التعابير النمطيّة وطباعة الخرج المطابق لها على شاشة الطرفية).
التعابير النمطيّة

تدعم التعابير النمطيّة نوعين من المحارف:
  • الأول هو الأحرف الأبجديّة المعروفة،
  • والآخر هو الرموز الخاصة Metacharacters، وهي ما تعطي التعابير النمطية فاعليتها الحقيقية.
لنأخذ الملف التالي country.txt كمثال، وهو - كما نرى - مؤلف من سبعة أسطر وثلاثة أعمدة، العمود الأول يحمل اسم البلد، والثاني عدد سكانه، والأخير القارّة التي يقع فيها:
كود:
$ cat country.txt  India,1014003817,Asia  Italy,57634327,Europe  Yemen,1184300,Asia  Argentina,36955182,Latin America  Brazil,172860370,Latin America  Cameroon,15421937,Africa  Japan,126549976,Asia
محارف الإرساء الخاصة

لنبدأ في شرح المحارف الخاصة مع العلامتين ^ و $، واللتان تشيران إلى أول السطر وآخره على التتالي، وتسمى بمحارف الإرساء anchor metacharacters. فلو رغبنا مثلًا بمعرفة أسماء البلدان التي تبدأ بحرف "I"، فإننا سنستخدم التعبير:
كود:
$ egrep '^I' country.txt  India,1014003817,Asia  Italy,57634327,Europe
وبالمثل، فلمعرفة أسماء البلدان التي تنتهي بحرف "e"، نكتب:
كود:
$ egrep 'e$' country.txt  Italy,57634327,Europe
العلامة التالية هي النقطة (.)، والتي تشير إلى محرف واحد (حرف، رقم، أو علامة)، فللبحث عن أسماء المدن المؤّلفة من خمسة محارف نطبع الأمر:
كود:
$ egrep '^.....,' country.txt  India,1014003817,Asia  Italy,57634327,Europe  Yemen,1184300,Asia  Japan,126549976,Asia
الآن لنجرّب البحث عن البلدان التي تبدأ بحرف "I" أو "J" ومؤلفة من خمسة محارف:
كود:
$ egrep '^[IJ]....,' country.txt India,1014003817,Asia Italy,57634327,Europe Japan,126549976
تسمّى الأقواس المستطيلة [] هنا بصفّ المحرف character class، وهي تبحث عن تطابق واحد فقط من المحارف التي تضمها مع النصّ. وإذا وضعنا بداخلها العلامة ^ فإنها تصبح صفّ استبعاد، أي تطابق كل النصّ المذكور عدا ما يلحقها، فلو أردنا البحث عن أسماء البلدان المؤلفة من خمسة محارف والتي لا يبدأ اسمها بحرف "J" ولا "I" فإننا نكتب:
كود:
$ egrep '^[^IJ]....,' country.txt  Yemen,1184300,Asia
مجموعات المحارف الخاصة وتنويعاتها

لمطابقة جميع الأسطر التي تضم كلمة Asia أو Africa نكتب:
كود:
$ egrep 'Asia|Africa' country.txt  India,1014003817,Asia  Yemen,1184300,Asia  Cameroon,15421937,Africa  Japan,126549976,Asia
كما يمكن إجراء ذات البحث باستخدام تعبير نمطي يستخرج حرفي A و a كعوامل مشتركة في الكلمتين:
كود:
$ egrep 'A(si|fric)a' country.txt  India,1014003817,Asia  Yemen,1184300,Asia  Cameroon,15421937,Africa  Japan,126549976,Asia
تحديد الكميّة

بدلًا من كتابة العبارة:
كود:
$ egrep '^[IJ]....,' country.txt
يمكننا اختصارها بالشكل:
كود:
$ egrep '^[IJ].{4},' country.txt
يسمى القوسين المزهّرين هنا {} بمحدّدي الكمية، وتضم رقم يعبّر عن عدد المرات التي يجب أن يتكرر فيها المحرف قبل مطابقته، كما تُستخدم للتعبير عن مدى (مجال) من المرات:
كود:
$ egrep '^[IJ].{4,6},' country.txt  India,1014003817,Asia  Italy,57634327,Europe  Japan,126549976,Asia
يبحث التعبير النمطي السابق عن أسماء البلدان التي تبدأ بالحرف "I" أو "J" وتتراوح عدد محارفها من 4 إلى 6. هناك أيضًا بعض الاختصارات التي يمكن استخدامها مع تحديد الكمية مثلًا المجال {0,1} والذي يعني "يوجد مرة واحدة على الأقل أو لا يوجد تمامًا"، يُكافئ بالرمز ؟، حيث يمكننا كتابة:
كود:
$ egrep '^ab{0,1}c$' filename
أو:
كود:
$ egrep '^ab?c' filename
أيضًا المجال {0,} يُكافئ بالرمز *، والتي تعني عدد لا نهائي من المرات، حيث التعبير:
كود:
$ egrep '^ab{0,}c$' filename
يساوي بالنتيجة:
كود:
$ egrep '^ab*c' filename
وكذلك المجال {1,} والذي يحدّد الكمية "مرّة واحدة على الأقل"، يُكافئ بالرمز +، ويكون التعبيرين التاليين متكافئين:
كود:
$ egrep '^ab{1,}c$' filename
كود:
$ egrep '^ab+c' filename
لنأخذ الآن بعض الأمثلة الأكثر تعقيدًا ولندمج ما تعلمناه من تعابير، لكن عوضًا عن البحث ضمن ملف نصيّ txt سنعالج دخل قياسي من قبل المستخدم. لنبحث مثلًا عن كل الاحتمالات الممكنة في تهجئة الجملة التالية: the grey colour suit was his favourite
كود:
$ egrep 'the gr[ea]y colou?r suit was his favou?rite'  the grey color suit was his favourite  the grey color suit was his favourite   the gray colour suit was his favorite  the gray colour suit was his favorite
لو نظرنا إلى التعبير المستخدم في هذا المثال، فإننا سنرى:
  • الكلمة "grey" يمكن أن تلفظ grey أو gray.
  • الكلمة "colour" تكتب بطريقتين: colour أو color،
وهذا يعني بأن حرف (u) اختياري، لذلك استخدمنا العلامة ؟ والتي تعني "يوجد مرة واحدة على الأقل أو لا يوجد تمامًا. + كذلك الأمر مع الكلمة "favourite" حيث كتابة حرف (u) اختيارية لذا استخدمنا ذات العلامة ؟
لنجرّب الآن مطابقة عنوان الرمز البريدي zip code في الولايات المتحدة:
كود:
$ egrep '^[0-9]{5}(-[0-9]{4})?$'  83456  83456  83456-  834562  92456-1234  92456-1234  10344-2342-345
مثال آخر يطابق جميع الأوقات الممكنة في الأربع والعشرين ساعة:
كود:
$ egrep '^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]'  23:44:02  23:44:02  33:45:11  15:45:33  15:45:33
في المثال السابق قلنا أنه إذا كانت الخانة الأولى من الساعة إما 0 أو 1، عندها يسمح للخانة الثانية بأن تأخذ قيمة من المجال من 0 إلى 9، ولكن إذا كانت الخانة الأولى تحمل الرقم 2 حينها يسمح للخانة الثانية أن تأخذ القيم 0، 1، 2، أو 3.
حدود الكلمة

لكتابة تعبير نمطي يطابق الكلمات التي تنتهي بـ "color"، سنرى أنه يطابق الأمثلة: unicolor ،watercolor ،multicolor، لكنه لن يطابق colorless أو colorful:
تطابق العلامة "<\" ورود كلمة color آخر الكلمة مثل unicolor، watercolor، أو multicolor،
كود:
$ egrep 'color\>'
أما لمطابقة كلمة color في أوّل الكلمة، مثل colorless أو colorful، فإننا نكتب:
كود:
$ egrep '\<color'
ولمطابقة كلمة color كما هي:
كود:
$ egrep '\<color\>'
الإحالات المرجعية

لنفترض أننا نريد مطابقة جميع الكلمات المكرّرة مثل "the the" أو "before before"، هنا نستخدم ما يسمى بالإحالات المرجعية backreferences والتي تستعمل لتذكّر الأنماط، مثال:
كود:
$ egrep "\<the\> \1"
أو في الحالة العامّة:
كود:
$ egrep "\<(.*)\> \1"
يطابق التعبير السابق جميع الكلمات عندما تتشابه الثانية مع الأولى، كما يمكن استخدام زوج إضافي من الأقواس مع المرجع 2\ لمطابقة الكلمات فقط إذ تكررت أربع مرات، وهكذا..
ترجمة -وبتصرّف- للمقال: An Introduction To Regular Expressions للكاتب: Shantanu Kulkarni.


كلمات البحث

برمجة ، تصميم ، دعم فني ، كونتكس ديف ، كونتكس





lr]lm td hgjuhfdv hgkl'dm Regular Expressions


رد مع اقتباس
كُتبَ بتاريخ : [ 06-16-2017 - 02:10 PM ]
 
 رقم المشاركة : ( 2 )
abdallah77
.:: كونتكس جديد ::.
رقم العضوية : 5969
تاريخ التسجيل : Jun 2017
مكان الإقامة :
عدد المشاركات : 5
عدد النقاط : 10

abdallah77 غير متواجد حالياً



جزاك الله كل خير، ورفع قدرك، ونفع بك

توقيع : abdallah77

أسْتَغْفِرُ اللهَ العَظِيمَ الَّذِي لاَ إلَهَ إلاَّ هُوَ، الحَيُّ القَيُّومُ، وَأتُوبُ إلَيهِ
سبحان الله وبحمده سبحان الله العظيم

offre emploi maroc

رد مع اقتباس
كُتبَ بتاريخ : [ 06-17-2017 - 05:20 PM ]
 
 رقم المشاركة : ( 3 )
XTHighamLer
.:: محظور ::.
رقم العضوية : 5842
تاريخ التسجيل : Jun 2017
مكان الإقامة :
عدد المشاركات : 327
عدد النقاط : 10

XTHighamLer متواجد حالياً



forex free bonus uk excalibur ea forex opciones binarias mas seguras forex rate on bloomberg gbp to inr options trading binary programmi per opzioni binarie trade options on margin broker opinion of value sample letter lq ption jenin kurssi forex verified trader system forex simulator iphone insider trading doppio binario free forex charts ipad coinex forex valasaravakkam forex profit supreme meter download forex dna jf lennon forex strategia non direzionale bollinger bands mobile economic news calendar forex gbp eur forex news forex one tv izle cheapest forex uk forex support and resistance strategy restricted stock vs stock options accounting an najah forex pilot option trading strategies test options trading buy to open buy to close bollinger bands useless forex reserves of india and china forex company logo stock options as deferred compensation forex fx 2ch win forex trade review forex eur rub bright trading strategies no stop loss strategy forex bollinger on bollinger bands 2011 cci technical indicator forex bonus no deposit broker forex exotic option trading pdf binare optionen 60 sek strategie sistema de comercio en via publica czy na forex da sie zarobic forex broker singapore list how to make a binary options without the risk best trading system for sale trading forex in india legal grace cheng 7 winning strategies for trading forex pdf forex options quotes jigsaw trading forex citibank fx options simple 15 minute forex strategy sistema binario q option option trade energy_trade_system_eurusd forex economic calendar myfxbook forex daily trading system review grafici andamento opzioni binarie forex basics tutorial how much cash do i need to trade options what is better stock options or rsu sam7k stock options bd forex blog understanding binary trading wystup fx options forex punjac t1212 binary options trading legitimate forex sydney market hours ig opzioni binarie cual es la mejor plataforma forex free forex exchange rates what might be the advantages and disadvantages of trading in futures and options 2ndskiesforex forex peace army forex exchange training easy forex trading limited manual opciones binarias forex india exchange rates california emissions trading system how to be a successful forex trader hk stock options trading forex trade room michael storm forex trading brokers sri lanka forex moving averages strategy arush forex pvt ltd best 4 hour forex strategy bollinger bands candlestick patterns uk forex spot rates forex rebates cash back forex ads forex mataf.net belajar bisnis forex online forex warrior ea free 60 second option trading average forex trader salary octa forex demo contest forex peso dollar one year cliff stock options forex dealer certification trading strategies research eteries forex best scalper forex robot es trading signals trading system trend following is auto binary signals web based first option trading stock options capital gains tax a good forex trading system stock options alternative minimum tax list of registered forex brokers with nfa how to use bollinger bands youtube forex history data download free iq option come paga ratio trade options japanese yen forex option volatility & pricing advanced trading strategies and techniques pdf japanese yen forex the binary options review lastre di pvc forex espanso yourtradingcoach trading strategy cftc forex leverage decision how to make money forex belajar forex di palembang flipper trading system nse forex tips limites en opciones financieras the volatility edge in options trading pdf download push button binary options rushabh forex services private limited options trading buy to open buy to close forex haram uzar azooni binarie uk best forex trading account forex freebie system forex market liquidity indicator no deposit bonus forex march 2015 drawing fibonacci retracements forex forexchange milano malpensa instawallet instaforex forex ecn stp brokers forex time frames forexte kaybetmeye son forex eur usd graph forex or the stock market california emissions trading system forex buy limit order stock options for amazon employees forex books pdf download options trading in india software is auto binary signals web based su dung bollinger bands most important forex indicators the volatility edge in options trading pdf download forex indicator xprofuter forex funds forex tokyo session start free binary option auto trader mejor software opciones binarias forex affiliate wordpress theme broker stockpair buying put options on etrade forex broker australia binary options dragon come scegliere la piattaforma di opzioni binarie metatrader 4 trading systems forex forward agreement hp yang bisa trading forex hmb forex rates what does it mean to exercise my stock options how to use fibonacci levels in forex butterfly strategy options assiom forex premio di laurea daftar trading forex indonesia apple stock options chain forex candlestick pattern indicator v1.5 metatrader 4 die besten forex roboter cvent stock options forex trading course australia forex management books wall street forex robot download free japanese candlesticks patterns forex algorithmic trading winning strategies and their rationale pdf free hedging technique forex westlands forex bureau nairobi where can i trade forex options unico metodo che funziona martingala opzioni binarie chaos theory forex trading cara deposit forex4you forex time frames aud/cad forex forecast siti trade binario automated forex trading strategies forex day trading money management forex bureau nairobi sunday nanningbob trading system latest forex no deposit bonus 2013 algorithmic trading winning strategies forex help to make wealthy quick teknik trade gold forex forex trading secrets book review rolling put options strategy trading system in nyse cours euro dollar us forex vesting employee stock options best forex scalping system best brokerage canada 2014 goptions minimum trade sanjay saraf forex broker forex lokal broker forex adalah weekly option trading alerts ffx yojimbo options grandoption bewertung dukascopy forex trading platform learn to be a forex trader options trading automated el mejor corredor de opciones binarias lot size definition forex Binaryoptions 1 2 3 pattern forex best binary options books cap and trade system graph philippine stock exchange new trading system binary option best time to trade forex4u india forex news announcements schedule forex binario mini 50 usd pengalaman profit forex book my forex pune s broker forex forex iraqi dinar exchange an forex pvt ltd forex online waluty tms curso forex em portugues 5 minute chart forex trading forex tax malaysia forex brokers accepting us clients forex consolidation is arti grafik pada forex amt exercise of incentive stock options time forex sessions and trade hours monitor

رد مع اقتباس
كُتبَ بتاريخ : [ 06-21-2017 - 04:28 PM ]
 
 رقم المشاركة : ( 4 )
Donaldcen
.:: محظور ::.
رقم العضوية : 6364
تاريخ التسجيل : Jun 2017
مكان الإقامة :
عدد المشاركات : 19
عدد النقاط : 10

Donaldcen غير متواجد حالياً



buy cialis online in usa best place to buy cialis online buy cialis online no prescription buy cialis online

رد مع اقتباس
إضافة رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

Bookmark and Share

RSS RSS 2.0 XML MAP HTML

الساعة الآن 03:27 PM بتوقيت القاهرة

<> كونتكس ديف | <>