ایک درست اظہار کیا ہے؟ ایک باقاعدہ اظہار کچھ مخصوص حروف کا استعمال کرتا ہے جو پہلے سے طے شدہ ہیں، اور ان مخصوص حروف کا مجموعہ، ایک قاعدہ قاعدہ سٹرنگ سٹرنگ کی تشکیل کرتا ہے، جو سٹرنگ کے لئے ایک فلٹرنگ منطق کا اظہار کرتا ہے.
给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
可以通过正则表达式,从字符串中获取我们想要的特定部分。
اس کے علاوہ ، میں نے ایک اور سافٹ ویئر کی سفارش کی ہے ، Regextor ، جو کہ ایک باقاعدہ اظہار کی توثیق کرنے والا سافٹ ویئر ہے ، تاکہ آپ کو سیکھنے میں آسانی ہو۔ اس کے بارے میں مزید معلومات کے لئے ، براہ کرم میرا مضمون ملاحظہ کریں ، جس میں میک کے لئے بہت سارے اچھے سافٹ ویئر کی سفارش کی گئی ہے۔

باقاعدہ اظہار صرف عام متن پر مشتمل ہو سکتا ہے، جس کی نمائندگی اس متن سے عین مطابق کی جائے۔ مثلاً:
باقاعدہ اظہار:song
متن کے مطابق: xiaoosongge, xiao Songge
نتائج کے بعد: xiaosongge,xiaoSongge
باقاعدہ اظہار ڈیفالٹ کے طور پر بڑے اور چھوٹے حروف کے درمیان تقسیم کیا جاتا ہے، لہذا گانا “گانا” سے مطابقت نہیں رکھتا ہے۔ تاہم، زیادہ تر باقاعدہ اظہار کے نفاذ میں ایک اختیار فراہم کیا جاتا ہے کہ بڑے اور چھوٹے حروف کے درمیان تقسیم نہیں کیا جائے گا۔
. کسی بھی حرف سے ملنے کے لیے استعمال کیا جاتا ہے، جیسے:
باقاعدہ اظہار: c.t
متن کے لئے انتظار کریں: cat cet caaat dog
میچ کے نتائج:cat cet caaat dog
تجزیہ: c.t “c” سے شروع ہونے والی ، “t” کے ساتھ ختم ہونے والی ، اور اس کے بیچ میں کسی بھی حرف کی سٹرنگ سے ملتا ہے۔
اسی طرح، ایک سے زیادہ مسلسل. آپ کو ایک سے زیادہ مسلسل، کسی بھی قسم کے حروف سے مل سکتا ہے:
باقاعدہ اظہار: c..t
متن کے لئے انتظار کریں: cat cet caat dog
میچ کے بعد نتائج: cat cet caat dog
. ریگولر اظہار میں خاص معنی کا حامل، ایک خاص حرف。\ بھی خاص حرف ہے، جو خاص حرف کے لیے مترجم کا کردار ادا کر سکتا ہے۔ اگر آپ میچ کرنا چاہتے ہیں تو ایک حقیقی “ . ” حرف ہے، جس کی ضرورت ہے۔ اس سے پہلے شامل کریں\ حروف کے لیے مترجم کے طور پر۔.اصل “ . ” حروف کو ظاہر کرتا ہے۔
باقاعدہ اظہار: c.t
متن کے لئے انتظار کریں: cat c.t dog
میچ کے بعد نتائج: catc.t dog
نوٹ: چونکہ \ بھی ایک خاص حرف ہے، اس لیے ایک حقیقی “ \ ” حرف سے ملنے کے لیے دو الٹا سلائیڈ استعمال کرنے کی ضرورت ہے۔\:
باقاعدہ اظہار: c\t
متن کے لئے انتظار کریں: cat c\t dog
میچ کے بعد نتائج: catc\t dog
اوپر میں نے کہا تھا کہ میں کسی بھی حروف کو میچ کر سکتا ہوں، لیکن اگر میں کچھ مخصوص حروف کو میچ کرنا چاہتا ہوں تو کیا ہوگا؟[اور [میٹرکارٹر
باقاعدہ اظہار: c[ab]t
متن کے لئے انتظار کریں: cat cbt cet
میچ کے نتائج:cat cbt cet
تجزیہ:[[ab] ‘a’ یا ‘b’ سے ملتا ہے۔ تو ‘c’[ab]t “cat” اور “cbt” سے ملتا ہے اور “cet” سے نہیں ملتا ہے۔
اس مثال میں، اگر میں سیٹ سے ملنا چاہتا ہوں تو،[کیا اس میں ایک سے زیادہ حرف ہیں؟ اگر میں کسی بھی چھوٹے حروف کے ساتھ لکھنا چاہوں تو کیا میں اس میں درجنوں حرف لکھ سکتا ہوں؟ یہ ممکن ہے، لیکن یہ بہت لمبا ہے۔[a-z]:
باقاعدہ اظہار: c[a-z]t
متن کے لئے انتظار کریں: cat cbt czt c2t
میچ کے نتائج:cat cbt czt c2t
تجزیہ: c[a-z]t کا مطلب ہے “ c ” سے شروع ہونے والا ، “ t ” کے ساتھ ختم ہونے والا ، اور بیچ میں حرف “ a ” - “ z ” کا کوئی بھی حرف۔
اسی طرح کے دیگر خطوط:
[0-9] اور[0123456789] کی طرح کام کرتا ہے۔ تمام نمبروں سے ملتا ہے۔ [A-F] A سے F تک کے بڑے حروف سے ملتا ہے۔ [A-Z] تمام A سے Z تک کے بڑے حروف سے ملتا ہے۔ [a-z] تمام a سے z تک کے چھوٹے حروف سے ملتا ہے۔ [A-z] ASCII A سے ASCII z تک کے تمام حروف کو میچ کرتا ہے (نہ صرف تمام حروف کو میچ کرتا ہے بلکہ ASCII ٹیبل میں A سے z تک کے حروف کو بھی میچ کرتا ہے ، جیسے[اور ^ وغیرہ) [A-Za-z0-9] تمام چھوٹے حروف اور اعداد سے ملتا ہے۔
حروف کا مجموعہ عام طور پر ان حروف کے ایک گروپ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جن سے ملنے کی ضرورت ہوتی ہے۔ لیکن بعض اوقات ، آپ ان حروف کے ایک گروپ کو خارج کرنا چاہتے ہیں جن سے آپ میچ نہیں کرنا چاہتے ہیں۔ یہ حروف کے مجموعے کی تردید کے ذریعہ کیا جاسکتا ہے۔ مثال کے طور پر:
باقاعدہ اظہار: c[^a-z]t
متن کے لئے انتظار کریں: cat cbt czt c2t cAt
میچ کے بعد نتائج: cat cbt czt c2t cAt
تجزیہ: یہ پچھلی مثال کے بالکل برعکس ہے۔[[a-z] تمام چھوٹے حروف سے ملتا ہے، جبکہ [^a-z] تمام غیر چھوٹے حروف کے حروف سے ملتا ہے۔
نوٹ کریں، ^ حروف حروف کے مجموعہ میں تمام حروف کو مماثلت سے خارج کرتا ہے۔
یہاں پر ہم نے پہلے ہی کئی میٹا حروف کے بارے میں بات کی ہے۔ مثال کے طور پر:[اور] ◄ یہ حروف اپنے معنی براہ راست ظاہر نہیں کر سکتے، مثلاً، براہ راست استعمال نہیں کر سکتے[ہم سے ملنے کے لئے”[اس کے علاوہ ، اس نے کہا:
تمام میٹا حروف کے سامنے ایک الٹا سلائیڈ ٹرانسکرپٹ شامل کیا جاسکتا ہے ، اور جب ٹرانسکرپٹ کیا جاتا ہے تو ، حروف اپنے آپ سے ملتے ہیں نہ کہ ان کے خاص معنی سے۔ مثال کے طور پر ،[“مطابق کریں گے”[ “:
باقاعدہ اظہار: a[b
متن کے ملاپ کے لئے انتظار کریں: a[b ab a[[b
میچ کے نتائج:a[b ab a[[b
نوٹ:\ کا استعمال مترجم حرف کے طور پر کیا جاتا ہے، جس کا مطلب یہ بھی ہے کہ\ بھی ایک حرف ہے۔ لہذا اگر آپ کو حقیقی “\” سے ملنے کی ضرورت ہو تو ، اس کا استعمال کیا جاسکتا ہے۔\:
باقاعدہ اظہار: a\b
متن کے ملاپ کے لئے انتظار کریں: a\b a\b a[[b
نتائج کے بعد: a\b a\b a[[b
بعض اوقات آپ کو خالی حروف سے ملنے کی ضرورت پڑسکتی ہے جو متن میں پرنٹ نہیں ہوسکتے ہیں۔ مثال کے طور پر ، آپ چاہتے ہیں کہ تمام ٹیب حروف یا تمام لائن بدلنے والے حروف کو تلاش کیا جاسکے۔ آپ مندرجہ ذیل ٹیبل میں خصوصی میٹا حروف استعمال کرسکتے ہیں:

مثال کے طور پر ، ایک / r / n ایک ریل کی منتقلی کے مجموعے سے ملتا ہے ، ونڈوز میں ایک فائل کی منتقلی کی نمائندگی کرتا ہے۔ لینکس اور یونیکس سسٹم میں ، صرف / n استعمال کرنے کی ضرورت ہے۔
کچھ خاص میٹرکارٹرز ہیں جن کا استعمال عام طور پر استعمال ہونے والے حروف کے مجموعے سے مماثل کرنے کے لئے کیا جاسکتا ہے۔ ان میٹرکارٹرز کو میچنگ حروف کلاس کہا جاتا ہے۔ آپ کو ان کا استعمال بہت آسان ہوگا۔
میچ نمبر یا غیر نمبر اس کے بعد، میں نے اس کے بارے میں سوچا.[0-9] تمام نمبروں کو میچ کیا جا سکتا ہے۔ اگر آپ کسی بھی نمبر کو میچ نہیں کرنا چاہتے ہیں تو ، آپ استعمال کرسکتے ہیں[^0-9]。 مندرجہ ذیل جدول میں عددی اور غیر عددی کی کلاس میٹرک کردار درج ہیں:

باقاعدہ اظہار: c\dt
متن کے لئے انتظار کریں: cat c2t czt c9t
میچ کے بعد نتائج: catc2t czt c9t
باقاعدہ اظہار: c\Dt
متن کے لئے انتظار کریں: cat c2t czt c9t
میچ کے نتائج:cat c2t czt c9t
حروف تہجی اور غیر حروف تہجی کے مماثل
ایک اور عام طور پر استعمال ہونے والا کلاس میٹا کیریکٹر\w اور\W ہے:

باقاعدہ اظہار: c\wt
متن کے لئے انتظار کریں: cat c2t czt c-t c\t
میچ کے نتائج:cat c2t c-t c\t
باقاعدہ اظہار: c\Wt
متن کے لئے انتظار کریں: cat c2t c-t c\t
میچ کے بعد نتیجہ: cat c2tc-t c\t
خالی اور غیر خالی میچ
آخری مماثلت جو آپ کو ملتی ہے وہ خالی ہے:

باقاعدہ اظہار: c\st
متن کے لئے انتظار کریں: cat c t c2t c\t
میچ کے بعد نتائج: catc t c2t c\t
باقاعدہ اظہار:
متن کے لئے انتظار کریں: cat c t c2t c\t
میچ کے نتائج:cat c t c2t c\t
باقاعدہ اظہار: cat
متن کے لئے انتظار کر رہے ہیں: ct cat caat caaat
ملاپ کے بعد نتائج: ctcat caat caaat
باقاعدہ اظہار: ca+t
متن کے لئے انتظار کر رہے ہیں: ct cat caat caaat
ملاپ کے بعد نتائج: ctcat caat caaat
جب حروف کی سیٹ پر + کا استعمال کیا جاتا ہے، تو + علامت کو سیٹ کے باہر رکھنا ضروری ہے:
باقاعدہ اظہار: c[0-9]+t
متن کے لئے انتظار کر رہے ہیں: ct c0t cat c123t
ملاپ کے بعد نتائج: ctc0t cat c123t
تجزیہ: c[0-9]+t ایک یا ایک سے زیادہ ہندسوں کے درمیان “c” سے شروع ہونے والی اور “t” کے ساتھ ختم ہونے والی تاروں کی نمائندگی کرتا ہے۔
یقیناً،[0-9+] بھی ایک قانونی باقاعدہ اظہار ہے، لیکن یہ ایک حرفی مجموعہ کی نمائندگی کرتا ہے جس میں “ 0 ” - “ 9 ” اور “ + ” علامات شامل ہیں۔
عام طور پر ، حرفی حروف جیسے . اور + وغیرہ جب حروف کے مجموعے کے لئے استعمال ہوتے ہیں تو وہ لفظی معنی کے طور پر استعمال ہوتے ہیں ، لہذا اس کا ترجمہ کرنے کی ضرورت نہیں ہے۔ لیکن اس کا ترجمہ کرنا بھی ٹھیک ہے ، لہذا ،[0-9+] اور[0-9+[] کا کام ایک جیسا ہے۔
نوٹ: + ایک میٹرکارٹر ہے، “+” سے ملنے کے لیے ترجمہ کی ضرورت ہے+。
اگر آپ صفر یا اس سے زیادہ حروف کا ملاپ کرنا چاہتے ہیں، تو آپ اس کا استعمال کر سکتے ہیں*حروف اول
باقاعدہ اظہار: ca*t
متن کے لئے انتظار کر رہے ہیں: ct cat caat cbt
میچ کے نتائج:ct cat caat cbt
نوٹس:علامات میٹا حروف ہیں۔ “” سے ملنے کے لئے ، اس کی تشریح کی ضرورت ہے*。
صفر یا ایک حرف سے ملتا ہے۔ لہٰذا، متن میں ایک اختیاری حرف سے ملنے کے لیے بہت موزوں ہے۔
باقاعدہ اظہار: ca?t
متن کے لئے انتظار کر رہے ہیں: ct cat caat cbt
میچ کے نتائج:ct cat caat cbt
نوٹ: ? علامت ایک حرفی حرف ہے۔ “؟” سے ملنے کے لیے ترجمہ کی ضرورت ہے۔?。
ایک باقاعدہ اظہار میچ کی تعداد کی وضاحت کرنے کی اجازت دیتا ہے۔ اس کی تعداد میں {مردہ} اور {مردہ} کے درمیان وضاحت کی جاسکتی ہے۔ نوٹ: { اور} بھی ایک حرفی حروف ہیں، جس کا لفظی معنی استعمال کرتے وقت ترجمہ کی ضرورت ہوتی ہے۔
عین مطابق میچ ملاپ کی تعداد کی وضاحت کرنے کے لئے ، آپ { اور } کے درمیان نمبر درج کرسکتے ہیں۔ مثال کے طور پر ، { 3 } 3 بار پہلے والے حرف یا مجموعہ سے مل جائے گا:
باقاعدہ اظہار: ca{3}t
متن کے لئے انتظار کریں: ct cat caaat cbt
نتائج البحث: ct catcaaat cbt
کم از کم میچوں کی تعداد
ہم صرف میچ کے لئے کم سے کم اقدار بھی دے سکتے ہیں۔ مثال کے طور پر ، {2،} کا مطلب ہے کہ میچ 2 یا زیادہ بار:
باقاعدہ اظہار: ca{1,}t
متن کے لئے انتظار کریں: ct cat caaat cbt
ملاپ کے بعد نتائج: ctcat caaat cbt
طول و عرض کے درمیان مماثلت
ہم میچوں کی تعداد کے لئے کم سے کم اور زیادہ سے زیادہ اقدار کا بھی استعمال کرسکتے ہیں۔ مثال کے طور پر ، {2,3} کا مطلب کم از کم 2 میچ اور زیادہ سے زیادہ 3 میچ ہے۔
باقاعدہ اظہار: ca{2,3}t
متن کے لئے انتظار کریں: ct cat caaat cbt
نتائج البحث: ct catcaaat cbt
تو؟ اور {0،1} کا فنکشن ایک جیسا ہے، اور {1،} کا فنکشن ایک جیسا ہے۔
ذیل میں ایک مثال ملاحظہ کریں:
باقاعدہ اظہار: s.*g متن کے لئے انتظار کریں: xiao song نتائج البحث: xiao song xiao song تجزیہ: s.*g نے دو ‘گانگ’ کو متوازن نہیں کیا جیسا کہ توقع کی گئی تھی ، بلکہ پہلے ’s’ اور آخری ‘g’ کے درمیان تمام متن کو ملا دیا تھا۔
یہ اس لئے ہے*اور + بھی لالچی مماثلت ہیں۔ یعنی ، باقاعدہ اظہار ہمیشہ سب سے زیادہ مماثلت تلاش کرتا ہے ، نہ کہ سب سے کم سے کم ، یہ جان بوجھ کر ڈیزائن کیا گیا ہے۔
لیکن اگر آپ کو لالچی میچ نہیں کرنا چاہتے ہیں تو آپ کو ان کو استعمال کرنے کی ضرورت ہے۔ غیر لالچی میچ (کم سے کم حروف کے ساتھ میچ) ۔ غیر لالچی میچ کو میچ کے بعد شامل کیا جاتا ہے:

*ہاں؟*کے غیر لالچی ورژن، تو استعمال کیا جا سکتا ہے*مندرجہ بالا مثال میں ترمیم کرنے کے لئے:
باقاعدہ اظہار: s.*?g
متن کے لئے انتظار کریں: xiao song
نتائج کے بعد: xiaosong xiao song
تجزیہ: s.*جی جی نے دو گانوں کو میچ کیا۔
اسٹرنگ بارڈر کے میٹرکارٹرز ^ اور $ ہیں جو اسٹرنگ کے آغاز اور اختتام کے لئے استعمال ہوتے ہیں۔
↑ اس طرح استعمال کیا جاتا ہے:
باقاعدہ اظہار: ^ xiao
ٹیکسٹ میچ کے لئے انتظار کریں:xiaosong
میچ کے نتائج:xiaosong
ٹیکسٹ میچ: axiaosong نتائج کے بعد: axiaosong تجزیہ: ^ xiao “ xiao ” سے شروع ہونے والی سٹرنگ سے ملتا ہے۔
$ کا استعمال مندرجہ ذیل ہے:
باقاعدہ اظہار: song$
ٹیکسٹ میچ کے لئے انتظار کریں:xiaosong
نتائج کے بعد: xiaosong
ٹیکسٹ میچ کے لئے انتظار کریں:xiaosonga نتائج کے بعد:xiaosonga تجزیہ: song$ “song” کے ساتھ ختم ہونے والی سٹرنگوں سے ملتا ہے۔
مشترکہ استعمال:
باقاعدہ اظہار: ^[0-9a-zA-Z]{4,}$
متن کے ملاپ کے لئے: a1b234ABC
میچ کے نتائج:a1b234ABC
متن کا موازنہ کرنے کے لئے: + a1b23 = 4ABC میچ کے بعد نتیجہ: + a1b23 = 4ABC تجزیہ: ^[0-9a-zA-Z]{4,}$ اعداد یا حروف پر مشتمل ہے اور اس کے ہندسوں کی تعداد چار ہندسوں کے برابر کی سٹرنگ سے زیادہ ہے۔
نوٹ:^ اگر یہ سیٹ کے آغاز میں ہو تو منفی ہے؛ اگر یہ سیٹ کے باہر ہو تو اس سے اسٹرنگ کا آغاز ملتا ہے۔[^0-9] اور ^[0-9] کا فرق
مگر ((?m) کثیر سطر موڈ کو فعال کر سکتا ہے۔ کثیر سطر موڈ میں، ریگولر ایکسپریشن انجن بدلنے والے نشان کو اسٹرنگ کے جداکار کے طور پر استعمال کرتا ہے، ^ متن کے آغاز یا ایک سطر کے آغاز سے مماثل ہوتا ہے، جبکہ $ متن کے اختتام یا ایک سطر کے اختتام سے مماثل ہوتا ہے۔
اس مثال میں ترمیم کریں:
باقاعدہ اظہار: ((?m) ^[0-9a-zA-Z]{4,}$
متن کے ملاپ کے لئے: a1b234ABC +a1b23=4ABC ABC123456
میچ کے نتائج:a1b234ABC
+a1b23=4ABC
ABC123456
تجزیہ: ((?m) ^[0-9a-zA-Z]{4,}$ ہر قطار کو اعداد یا حروف سے ملنے کے لئے مل جائے گا، اور ان کی تعداد چار ہندسوں کے برابر چار ہندسوں سے زیادہ ہے۔
نوٹ: اگر کثیر سطر کا موڈ استعمال کیا جائے تو ، ((?m) کو باقاعدہ اظہار کے آغاز میں رکھنا ضروری ہے۔ (? m) زیادہ تر ریگولر اظہار کے نفاذ میں معاون نہیں ہے۔ کچھ ریگولر اظہار کے نفاذ میں \A میچنگ سٹرنگ کے آغاز اور \Z میچنگ سٹرنگ کے اختتام کا استعمال بھی معاون ہے۔ اگر معاون ہو تو ان میٹرکارڈس کا فنکشن ^، $ جیسا ہی ہوتا ہے۔ لیکن ان میٹرکارڈس کو ((? m) ترمیم کا استعمال نہیں کیا جاسکتا ہے ، لہذا یہ کثیر سطر کے موڈ میں بھی استعمال نہیں کیا جاسکتا ہے۔
ٹویٹر پر ٹویٹ کریں