باقاعدہ اظہار کیا ہے؟ ایک باقاعدہ اظہار ایک مخصوص حروف کا ایک مجموعہ ہوتا ہے جو پہلے سے طے شدہ حروف کا استعمال کرتا ہے، اور اس کے ساتھ ساتھ اس کے حروف کا ایک مجموعہ بناتا ہے، جس میں حروف کے لئے ایک فلٹرنگ منطق کا اظہار کرنے کے لئے استعمال کیا جاتا ہے.
باقاعدہ اظہار کے ذریعے مندرجہ ذیل مقاصد حاصل کیے جاسکتے ہیں:
给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
可以通过正则表达式,从字符串中获取我们想要的特定部分。
اس کے علاوہ ، آپ کو یہ بھی سیکھنا آسان بنانا چاہئے کہ کس طرح آپ اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر استعمال کرنے کے لئے اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر کو استعمال کرنے کے لئے اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر کو استعمال کرنے کے لئے اپنے کمپیوٹر پر اپنے کمپیوٹر پر اپنے کمپیوٹر کو استعمال
باقاعدہ اظہار صرف عام متن پر مشتمل ہو سکتا ہے، جس کا مطلب یہ ہے کہ یہ متن بالکل مماثل ہے۔ مثال کے طور پر:
ایک عام اظہار:song
متوازن متن: Xiaosongge, xiaoSongge
ملاپ کے بعد نتائج: xiaosong
Ge، Xiao Songge
باقاعدہ اظہار ڈیفالٹ کی طرف سے بڑے پیمانے پر لکھا جاتا ہے، لہذا گانا میچ نہیں کرتا ہے۔ Song Song. لیکن زیادہ تر باقاعدہ اظہار کی عمل درآمد میں ایک اختیار فراہم کی جاتی ہے جس کا مطلب ہے کہ بڑے پیمانے پر نہیں لکھا جاتا ہے۔
. کسی بھی حروف سے ملنے کے لئے استعمال کیا جاتا ہے ، جیسے:
باقاعدہ اظہار: c.t
متوازن متن: cat cet caaat dog
میچ کے بعد نتائج:cat
cet
caaat dog
تجزیہ: c.t کو "c
同理,多个连续的.可以匹配多个连续的任意字符:
باقاعدہ اظہار: c...t
متوازن متن: cat cet caat dog
میچ کے بعد نتائج: cat cetcaat
کتا
. باقاعدہ اظہار میں خاص معنی رکھتا ہے ، ایک خاص کردار ہے۔// یہ بھی ایک خاص کردار ہے ، جو خصوصی کردار کے لئے ترجمہ کا کام کرسکتا ہے۔// اگر آپ میچ کرنا چاہتے ہیں تو ، یہ ایک حقیقی " ہے۔"
باقاعدہ اظہار: c.t
متوازن متن: cat c.t dog
ملاپ کے نتائج: catc.t
کتا
نوٹ: چونکہ \ بھی ایک خاص کردار ہے، لہذا اگر آپ ایک حقیقی \ کردار سے ملنا چاہتے ہیں تو آپ کو دو الٹا slopes \ استعمال کرنے کی ضرورت ہے:
باقاعدہ اظہار: c \ t
متوازن متن کے منتظر: cat c\t dog
ملاپ کے نتائج: catc\t
کتا
مندرجہ بالا کہا. کسی بھی کردار سے مل سکتا ہے، لیکن اگر میں کچھ مخصوص حروف سے ملنا چاہتا ہوں تو کیا ہوگا؟ مخصوص حروف کے سیٹ سے ملنے کے لئے [اور] میٹا حروف کا استعمال کیا جا سکتا ہے۔
باقاعدہ اظہار: c[ab]t
متوازن متن انتظار کر رہا ہے: cat cbt cet
میچ کے بعد نتائج:cat
cbt
سیٹ
تجزیہ: [ab] "a
مندرجہ بالا مثال میں ، اگر میں سیٹ کو میچ کرنا چاہتا ہوں تو کیا ہوگا ، کیا میں [] میں ایک اور شامل کروں گا؟ اگر میں کسی بھی چھوٹے حروف کو میچ کرنا چاہتا ہوں تو کیا میں اس میں درجنوں لکھوں گا؟ اگرچہ یہ ممکن ہے ، لیکن یہ بہت لمبا ہے۔ یہاں ہم [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 cztc2t
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\ba\b
a[[b
بعض اوقات آپ کو ایسے خالی حروف سے ملنا پڑ سکتا ہے جو متن میں پرنٹ نہیں ہو سکتے ہیں۔ مثال کے طور پر، آپ تمام ٹیب حروف یا تمام متبادل حروف تلاش کرنا چاہتے ہیں۔ آپ مندرجہ ذیل جدول میں خصوصی میٹرکارکٹر استعمال کر سکتے ہیں:
مثال کے طور پر \r\n ایک واپس اور پیچھے کی باری کا مجموعہ سے ملتا ہے، جو ونڈوز میں ایک فائل کی باری کا مطلب ہے۔ لینکس اور یونیکس سسٹم میں، صرف \n کا استعمال کریں۔
کچھ خاص میٹرکارکٹر ہیں جو عام طور پر استعمال ہونے والے کردار کے مجموعے سے ملنے کے لئے استعمال کیے جاسکتے ہیں۔ یہ میٹرکارکٹر میچنگ کلرز کہلاتے ہیں۔ آپ کو ان کا استعمال آسان معلوم ہوگا۔
عددی یا غیر عددی ملاپ جیسا کہ اوپر کہا گیا ہے، [0-9] تمام نمبروں سے مل سکتا ہے۔ اگر آپ کسی بھی نمبروں سے ملنا نہیں چاہتے ہیں تو آپ [^0-9] کا استعمال کرسکتے ہیں۔ درج ذیل جدول میں عددی اور غیر عددی کلاس کے سب سے اوپر حروف درج ہیں:
باقاعدہ اظہار: c\dt
متوازن متن: cat c2t czt c9t
ملاپ کے نتائج: catc2t
cztc9t
باقاعدہ اظہار: c\Dt
متوازن متن: cat c2t czt c9t
میچ کے بعد نتائج:cat
c2tczt
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
باقاعدہ اظہار: c\St
متوازن متن: cat c t c2t c \ t
میچ کے بعد نتائج:cat
c tc2t
c\t
+ میٹرکارکٹر سے مراد ایک یا زیادہ حروف کا ملاپ ہے۔ مثال کے طور پر، a "a" سے ملاپ کرے گا جبکہ a + ایک یا زیادہ "a" سے ملاپ کرے گا۔
باقاعدہ اظہار: cat
متوازن متن: ct cat caat caaat
ملاپ کے بعد نتائج:ctcat
کٹ کٹ
باقاعدہ اظہار: ca + t
متوازن متن: ct cat caat caaat
ملاپ کے بعد نتائج:ctcat
caat
caaat
جب آپ + کو حروف کے مجموعے میں استعمال کرتے ہیں تو ، آپ کو + علامت کو مجموعہ کے باہر رکھنا ہوگا:
باقاعدہ اظہار: c [0-9] + t
متوازن متن کے لئے انتظار کر رہے ہیں:ct c0t cat c123t
ملاپ کے بعد نتائج:ctc0t
بلیc123t
تجزیہ: c[0-9]+t کا مطلب ہے "c سے شروع ہوتا ہے اور t سے ختم ہوتا ہے" ، جس میں ایک یا زیادہ ہندسوں کا ایک سلسلہ ہوتا ہے۔
یقینا، [0-9+] بھی ایک جائز باقاعدہ اظہار ہے، لیکن یہ 0 - 9 اور + علامتوں پر مشتمل ایک حروف کا مجموعہ ظاہر کرتا ہے۔
عام طور پر ، میٹرکارکٹروں جیسے. اور + جیسے حروف کے مجموعے کے لئے استعمال ہوتے ہیں جب لفظی معنی کے طور پر استعمال ہوتے ہیں ، لہذا ان کا ترجمہ کرنے کی ضرورت نہیں ہے۔ لیکن ان کا ترجمہ کرنا بھی ٹھیک ہے ، لہذا ، [0-9+] اور [0-9+] کا کام ایک ہی ہے۔
نوٹ: + ایک میٹا کردار ہے، "+" سے ملنے کے لئے منتقلی کا استعمال کرنے کی ضرورت ہے۔
اگر آپ صفر یا اس سے زیادہ حروف سے ملنا چاہتے ہیں تو ، آپ * میٹا حروف استعمال کرسکتے ہیں۔
باقاعدہ اظہار: ca*t
متوازن متن کے منتظر: ct cat caat cbt
میچ کے بعد نتائج:ct
cat
caat
سی بی ٹی
نوٹ:* علامت میٹا کردار ہے۔ * * * * * * * * * * * * * *
? صفر یا ایک کردار سے ملتا ہے۔ لہذا ، ؟ متن میں ایک اختیاری کردار سے ملنے کے لئے بہت موزوں ہے۔
باقاعدہ اظہار: ca?t
متوازن متن کے منتظر: ct cat caat cbt
میچ کے بعد نتائج:ct
cat
سی اے اے ٹی سی بی ٹی
نوٹ: ؟ علامت میٹا کردار ہے۔ " ؟ " سے ملنے کے لئے ، " ؟ " کو تبدیل کرنے کی ضرورت ہے۔
ایک باقاعدہ اظہار میچ کرنے کی تعداد کی وضاحت کرنے کی اجازت دیتا ہے۔ تعداد میں اضافہ کرنے کے لئے {
درست تعداد میں مماثلت اگر آپ چاہتے ہیں کہ آپ کے پاس ایک نمبر ہے جو آپ کے پاس ہے تو ، آپ کو اس نمبر کو درج کرنے کی ضرورت ہے۔ مثال کے طور پر ، {3} اس سے پہلے 3 بار ظاہر ہونے والے کسی بھی کردار یا مجموعہ سے مل جائے گا۔
باقاعدہ اظہار: ca{3}t
متوازن متن کے لئے انتظار کر رہے ہیں: ct cat caaat cbt
ملاپ کے نتائج: ct catcaaat
سی بی ٹی
کم از کم تعداد میں مماثلت
ہم صرف میچ کے لئے کم سے کم قدر کی وضاحت کر سکتے ہیں۔ مثال کے طور پر، {2,} کا مطلب ہے 2 یا اس سے زیادہ میچ:
باقاعدہ اظہار: ca{1,} t
متوازن متن کے لئے انتظار کر رہے ہیں: ct cat caaat cbt
ملاپ کے بعد نتائج:ctcat
caaat
سی بی ٹی
اعشاریہ کے درمیان مماثلت
ہم کم سے کم اور زیادہ سے زیادہ تعداد میں مماثلت کا تعین کرنے کے لئے بھی استعمال کرسکتے ہیں۔ مثال کے طور پر، {2,3} کا مطلب ہے کم سے کم 2 میچ اور زیادہ سے زیادہ 3 میچ۔
باقاعدہ اظہار: ca{2,3} t
متوازن متن کے لئے انتظار کر رہے ہیں: ct cat caaat cbt
ملاپ کے نتائج: ct catcaaat
سی بی ٹی
تو؟ اور {0،1} کی تقریب ایک ہی ہے + اور {1،} کی تقریب ایک ہی ہے۔
اس کے علاوہ ، آپ کو یہ بھی دیکھنا چاہئے کہ آپ کو کیا کرنا چاہئے:
باقاعدہ اظہار: s.*g متوازن متن: xiao song xiao song ملاپ کے نتائج: xiao song xiao song تجزیہ: s.*g نے متوقع طور پر دو "songs" کے درمیان میچ نہیں کیا بلکہ پہلے "s" اور آخری "g" کے درمیان تمام متن کو میچ کیا۔
اس کی وجہ یہ ہے کہ * اور + لالچی مماثلت ہیں۔ یعنی ، باقاعدہ اظہار ہمیشہ سب سے بڑی مماثلت کی تلاش کرتا ہے ، نہ کہ کم سے کم ، جو کہ جان بوجھ کر ڈیزائن کیا گیا ہے۔
لیکن اگر آپ نہیں چاہتے ہیں کہ پیمائش کا پیمائش کریں تو ، ان الفاظ کے غیر پیمائش کا پیمائش کریں (مختلف حروف کو کم سے کم کرنے کے لئے) ؛
کیا؟اس کے علاوہ ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے کہ آپ کو اس کے بارے میں کیا سوچنا چاہئے ، لہذا آپ *؟ کا استعمال کرکے مندرجہ بالا مثال کو تبدیل کرسکتے ہیں۔
正则表达式:s.کیا؟
متوازن متن: xiao song xiao song
ملاپ کے بعد نتائج: xiaosong
شیاؤsong
分析:可以看到s.?g نے دو "Songs" کو ملا دیا ہے۔
سٹرنگ کی سرحدوں کے ساتھ ملنے والے میٹرکارکٹر ^ اور $ ہیں ، جو بالترتیب سٹرنگ کے آغاز اور اختتام کے لئے استعمال ہوتے ہیں۔
^ استعمال کیا جاتا ہے:
باقاعدہ اظہار: ^ xiao
متوازن متن کے انتظار میں:xiaosong
میچ کے بعد نتائج:xiao
گانا
متوازن متن: 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=4ABCABC123456
تجزیہ: ((?m) ^ [0-9a-zA-Z]{4,} $ ہر سطر میں استعمال ہونے والے اعداد یا حروف کے ساتھ مل جائے گا ، اور اس کا عدد چار ہندسوں کے برابر سٹرنگ سے بڑا ہوگا۔
نوٹ: اگر آپ کثیر سطری نمونہ استعمال کرتے ہیں تو ، ((؟m) کو باقاعدہ اظہار کے آغاز میں رکھنا ضروری ہے۔ (?m) باقاعدہ اظہار کی زیادہ تر تعینات میں معاون نہیں ہے۔ کچھ باقاعدہ اظہار کی تعینات میں بھی \A میچ سٹرنگ کے آغاز اور \Z میچ سٹرنگ کے اختتام کا استعمال معاون ہے۔ اگر معاون ہے تو ، ان میٹرکارکس کا کام ^ ، $ کے ساتھ ایک جیسا ہے۔ لیکن یہ میٹرکارکس معاوضہ استعمال نہیں کرسکتے ہیں ، لہذا یہ کثیر سطری موڈ میں استعمال نہیں ہوسکتے ہیں۔
iOS_چوسکو سے نقل کیا گیا