ازگر ریجیکس کی مثالیں۔

Azgr Ryjyks Ky Mthaly



ریجیکس کی مکمل شکل Regular Expression ہے۔ یہ کسی بھی پروگرامنگ زبان کی ایک اہم خصوصیت ہے۔ یہ ایک سٹرنگ پیٹرن ہے جو سٹرنگ ویلیو میں سٹرنگز کو ملانے، تلاش کرنے یا تبدیل کرنے کے لیے استعمال ہوتا ہے۔ regex پیٹرن Python کے 're' ماڈیول کا استعمال کرتے ہوئے Python اسکرپٹ میں استعمال کیا جا سکتا ہے۔ اس ماڈیول میں مختلف سٹرنگ آپریشنز کرنے کے لیے کئی قسم کے فنکشنز ہیں۔ کاموں کو تلاش کرنے یا تبدیل کرنے کے لیے ریجیکس پیٹرن کی وضاحت کرنے کے لیے مختلف میٹا کریکٹرز اور خصوصی ترتیب استعمال کیے جاتے ہیں۔ اس ٹیوٹوریل میں Python اسکرپٹ میں عام طور پر استعمال ہونے والے میٹا کریکٹرز، خصوصی ترتیب اور regex طریقوں کو استعمال کرنے کے مقاصد دکھائے گئے ہیں۔

ریجیکس میں عام طور پر استعمال ہونے والے میٹا کریکٹرز:









کردار مقصد
'+' اس کا استعمال سٹرنگ میں کسی خاص کردار کے ایک یا زیادہ واقعات سے ملنے کے لیے کیا جاتا ہے۔
'*' اس کا استعمال سٹرنگ میں کسی خاص کردار کے صفر یا اس سے زیادہ واقعات کو ملانے کے لیے کیا جاتا ہے۔
'؟' اس کا استعمال سٹرنگ میں کسی خاص کریکٹر کی صفر یا ایک موجودگی کو ملانے کے لیے کیا جاتا ہے۔
'^' یہ سٹرنگ کے شروع میں مخصوص کریکٹر یا سٹرنگ سے ملنے کے لیے استعمال ہوتا ہے۔
'$' یہ سٹرنگ کے آخر میں مخصوص کریکٹر یا سٹرنگ سے ملنے کے لیے استعمال ہوتا ہے۔
'|' یہ ایک سٹرنگ میں سے کسی ایک سے زیادہ سٹرنگز کو ملانے کے لیے استعمال ہوتا ہے۔ یہ OR منطق کی طرح کام کرتا ہے۔
'[]' یہ حروف کی ایک حد سے ملنے کے لیے استعمال ہوتا ہے۔
'{}' یہ حروف کی ایک مخصوص تعداد سے ملنے کے لیے استعمال ہوتا ہے۔



regex میں عام طور پر استعمال ہونے والے کچھ خاص سلسلے:





سلسلے مقصد
'\A' یہ سٹرنگ کے شروع میں مخصوص کریکٹر سے ملنے کے لیے استعمال ہوتا ہے۔ یہ '^' کردار کی طرح کام کرتا ہے۔
'\b'، '\B' '\b' اس سٹرنگ کو ملانے کے لیے استعمال کیا جاتا ہے جس میں سٹرنگ کے شروع یا آخر میں مخصوص کریکٹر یا لفظ ہوتا ہے۔ '\B' '\b' کے برعکس کام کرتا ہے۔
'\d'، '\D' '\d' اسٹرنگ میں اعشاریہ نمبر سے ملنے کے لیے استعمال کیا جاتا ہے جو '[0-9]' سے ملتا جلتا ہے۔ '\D' '\d' کے برعکس کام کرتا ہے۔
'\s'، '\S' '\s' کا استعمال اسٹرنگ میں موجود خالی جگہ کو ملانے کے لیے کیا جاتا ہے جو '[\n\t\r\v]' سے ملتا جلتا ہے۔ '\S' '\s' کے برعکس کام کرتا ہے۔
'\w'، '\W' '\w' کا استعمال سٹرنگ میں حروف تہجی اور عددی حروف کو ملانے کے لیے کیا جاتا ہے۔ '\W' '\w' کے برعکس کام کرتا ہے۔
'\' کے ساتھ' یہ سٹرنگ کے آخر میں مخصوص کریکٹر سے ملنے کے لیے استعمال ہوتا ہے۔ یہ '$' کردار کی طرح کام کرتا ہے۔

مثال 1: Match() فنکشن کا استعمال کرتے ہوئے سٹرنگ کو میچ کریں۔

میچ() فنکشن سٹرنگ کے شروع میں ریجیکس پیٹرن سے ملنے کے لیے استعمال ہوتا ہے۔ اس فنکشن کا نحو درج ذیل ہے:



نحو:

دوبارہ میچ ( پیٹرن، تار، جھنڈے = 0 )

یہاں، پہلی دلیل ریجیکس پیٹرن کی وضاحت کے لیے استعمال ہوتی ہے۔ دوسری دلیل مین سٹرنگ کی وضاحت کے لیے استعمال ہوتی ہے۔ تیسری دلیل اختیاری ہے اور مختلف قسم کے جھنڈوں کی وضاحت کے لیے استعمال ہوتی ہے۔

مندرجہ ذیل اسکرپٹ کے ساتھ ایک Python فائل بنائیں جو میچ() فنکشن کا استعمال کرتے ہوئے ایک متعین سٹرنگ کے ساتھ ریجیکس پیٹرن سے میل کھاتی ہے۔ سب سے پہلے، ایک متعین ریجیکس پیٹرن کو ملانے کے لیے استعمال کیا جاتا ہے۔ اس کے بعد، صارف سے تلاش کا لفظ لیا جاتا ہے اور اسے سٹرنگ ویلیو سے ملنے کے لیے ریجیکس پیٹرن کے طور پر استعمال کیا جاتا ہے۔ اگر کوئی مماثلت پائی جاتی ہے تو تلاش کا لفظ پرنٹ کیا جاتا ہے۔ بصورت دیگر، 'کوئی مماثل قدر نہیں ملی' سٹرنگ پرنٹ کی جاتی ہے۔

# ضروری ماڈیول درآمد کریں۔
دوبارہ درآمد کریں

# مماثل نتیجہ پرنٹ کرنے کے لیے فنکشن کی وضاحت کریں۔
def matchString ( ) :
# میچ () فنکشن کی واپسی کی قیمت چیک کریں۔
اگر اس کے ساتھ ! = کوئی نہیں:
پرنٹ کریں ( '' + mat.group ( ) + '''' میں پایا جاتا ہے + strValue + '' )
دوسری:
پرنٹ کریں ( 'کوئی مماثل قیمت نہیں ملی۔' )

# سٹرنگ ویلیو کی وضاحت کریں۔
strValue = 'پہلے میں پہلے باہر.'
# پیٹرن کی بنیاد پر سٹرنگ کو میچ کریں۔
چٹائی = دوبارہ میچ ( '^پہلے' strValue )
# میچ کا نتیجہ پرنٹ کرنے کے لیے فنکشن کو کال کریں۔
میچ سٹرنگ ( )

# سرچ سٹرنگ لیں۔
inValue = ان پٹ ( 'تلاش کی قدر درج کریں:' )
چٹائی = دوبارہ میچ ( inValue + strValue )
# میچ کا نتیجہ پرنٹ کرنے کے لیے فنکشن کو کال کریں۔
میچ سٹرنگ ( )

'پہلی' ان پٹ ویلیو کے لیے درج ذیل آؤٹ پٹ ظاہر ہوتا ہے:

مثال 2: Findall() فنکشن کا استعمال کرتے ہوئے سٹرنگ تلاش کریں۔

Findall() فنکشن کا استعمال تمام مماثل الفاظ کو واپس کرنے کے لیے کیا جاتا ہے جو مین سٹرنگ میں بطور ٹیوپل پائے جاتے ہیں۔

نحو:

re.findall ( پیٹرن، تار، جھنڈے = 0 )

یہاں، پہلی دلیل ریجیکس پیٹرن کی وضاحت کے لیے استعمال ہوتی ہے۔ دوسری دلیل مین سٹرنگ کی وضاحت کے لیے استعمال ہوتی ہے۔ تیسری دلیل اختیاری ہے اور مختلف قسم کے جھنڈوں کی وضاحت کے لیے استعمال ہوتی ہے۔

درج ذیل اسکرپٹ کے ساتھ ایک Python فائل بنائیں جو صارف سے مین سٹرنگ ویلیو اور سرچ سٹرنگ ویلیو لیتی ہے۔ اس کے بعد، مرکزی سٹرنگ میں تلاش کا لفظ تلاش کرنے کے لیے ریجیکس پیٹرن میں تلاش کا لفظ استعمال کریں۔ آؤٹ پٹ میں کل میچوں کی تعداد پرنٹ کی جاتی ہے۔

# ضروری ماڈیول درآمد کریں۔
دوبارہ درآمد کریں

# سٹرنگ ویلیو لیں۔
inValue = ان پٹ ( 'ایک تار درج کریں:' )

# تلاش کا لفظ لیں۔
srcValue = ان پٹ ( 'تلاش کا لفظ درج کریں:' )

# اسٹرنگ میں لفظ تلاش کریں۔
srcResult = re.findall ( srcValue + '\ میں*' , invalue )
# تلاش کا نتیجہ پرنٹ کریں۔
پرنٹ کریں ( 'لفظ '' + srcValue + '' تار میں پایا جاتا ہے'
+ str ( صرف ( src نتیجہ ) ) + 'بار' )

آؤٹ پٹ کے مطابق، سرچ لفظ 'کھانا' دو بار 'ہم جینے کے لیے کھاتے ہیں اور کھانے کے لیے نہیں جیتے' مین سٹرنگ میں پایا جاتا ہے۔

مثال 3: Search() فنکشن کا استعمال کرتے ہوئے اسٹرنگ کو تلاش کریں۔

سرچ() سٹرنگ ویلیو میں کسی خاص پیٹرن کو تلاش کرنے کے لیے ایک اور فنکشن ہے۔ اس میں میچ() اور Findall() فنکشنز جیسے ہی آرگیومینٹس ہیں۔ مندرجہ ذیل اسکرپٹ کے ساتھ ایک Python فائل بنائیں جو لفظ 'Python' کو سٹرنگ ویلیو میں تلاش کرتی ہے جو صارف سے لی جائے گی۔ اگر تلاش کا لفظ ان پٹ ویلیو میں موجود ہے تو کامیابی کا پیغام پرنٹ کیا جاتا ہے۔ دوسری صورت میں، ایک ناکامی کا پیغام پرنٹ کیا جاتا ہے.

# دوبارہ ماڈیول درآمد کریں۔
دوبارہ درآمد کریں

# سٹرنگ ویلیو لیں۔
inValue = ان پٹ ( 'ایک تار درج کریں:' )
# خاص لفظ کو سٹرنگ ویلیو میں تلاش کریں۔
srcResult = دوبارہ تلاش کریں۔ ( r 'Python\w*' , invalue )

# چیک کریں کہ سرچ لفظ ملا ہے یا نہیں۔
اگر src نتیجہ:
پرنٹ کریں ( '' + srcResult.group ( ) + '''' میں پایا جاتا ہے + ان ویلیو + '' )
دوسری:
پرنٹ کریں ( 'تلاش کی تار نہیں ملی۔' )

آؤٹ پٹ:

درج ذیل آؤٹ پٹ ظاہر ہوتا ہے اگر ان پٹ سٹرنگ 'مجھے پائتھون پروگرامنگ پسند ہے':

درج ذیل آؤٹ پٹ ظاہر ہوتا ہے اگر ان پٹ سٹرنگ 'مجھے پی ایچ پی پروگرامنگ پسند ہے':

مثال 4: Sub() فنکشن کا استعمال کرتے ہوئے اسٹرنگ کو تبدیل کریں۔

ذیلی () فنکشن پیٹرن کی بنیاد پر کسی خاص سٹرنگ کو تلاش کرنے اور اسے دوسرے لفظ سے بدلنے کے لیے استعمال کیا جاتا ہے۔ اس فنکشن کا نحو درج ذیل ہے:

نحو:

re.sub ( پیٹرن، ریپلیس_سٹرنگ، مین_سٹرنگ )

اس فنکشن کی پہلی دلیل میں وہ پیٹرن ہوتا ہے جو مین سٹرنگ میں مخصوص سٹرنگ کو تلاش کرنے کے لیے استعمال ہوتا ہے۔

اس فنکشن کی دوسری دلیل میں 'بدلیں' سٹرنگ ویلیو شامل ہے۔

اس فنکشن کی تیسری دلیل مین سٹرنگ پر مشتمل ہے۔

اگر پہلی دلیل کی بنیاد پر مین سٹرنگ میں کوئی مماثل لفظ موجود ہو تو یہ فنکشن تبدیل شدہ سٹرنگ کو لوٹاتا ہے۔

درج ذیل اسکرپٹ کے ساتھ ایک Python فائل بنائیں جو سٹرنگ کے آخر میں دو ہندسوں کو تلاش کرتی ہے۔ اگر سٹرنگ کے آخر میں دو ہندسے ہوتے ہیں تو ہندسوں کو '$50' سٹرنگ سے بدل دیا جاتا ہے۔

# دوبارہ ماڈیول درآمد کریں۔
دوبارہ درآمد کریں

#مین سٹرنگ کی وضاحت کریں۔
strValue = کتاب کی قیمت 70 روپے ہے

# سرچ پیٹرن کی وضاحت کریں۔
پیٹرن = '[0-9]{2}'

# بدلنے کی قدر کی وضاحت کریں۔
متبادل ویلیو = '$50'

# پیٹرن کی بنیاد پر سٹرنگ کو تلاش کریں اور تبدیل کریں۔
modified_strValue = re.sub ( پیٹرن، ریپلیس ویلیو، strValue )
#اصل اور ترمیم شدہ سٹرنگ ویلیوز پرنٹ کریں۔
پرنٹ کریں ( 'اصل سٹرنگ:' + strValue )
پرنٹ کریں ( 'ترمیم شدہ تار:' + modified_strValue )

آؤٹ پٹ:

مین سٹرنگ کے آخر میں 70 تھے۔ لہذا، 70 کو تبدیل شدہ سٹرنگ میں $50 سے بدل دیا گیا ہے۔

مثال 5: Subn() فنکشن کا استعمال کرتے ہوئے اسٹرنگ کو تبدیل کریں۔

subn() فنکشن sub() فنکشن کی طرح کام کرتا ہے، سوائے اس کے کہ یہ آؤٹ پٹ کو ٹپل کے طور پر واپس کرتا ہے جہاں پہلے انڈیکس میں تبدیل شدہ ویلیو ہوتی ہے اور دوسرے انڈیکس میں میچز کی کل تعداد ہوتی ہے۔

درج ذیل اسکرپٹ کے ساتھ ایک Python فائل بنائیں جو subn() فنکشن کا استعمال کرتے ہوئے 'LinuxHint.com' سٹرنگ میں حروف تہجی A سے L کو تلاش کرتی ہے۔

# دوبارہ ماڈیول درآمد کریں۔
دوبارہ درآمد کریں

#مین سٹرنگ کی وضاحت کریں۔
strValue = 'LinuxHint.com'

# سرچ پیٹرن کی وضاحت کریں۔
پیٹرن = '[کرنے کے لئے]'

# بدلنے کی قدر کی وضاحت کریں۔
متبادل ویلیو = '*'

# پیٹرن کی بنیاد پر سٹرنگ کو تلاش کریں اور تبدیل کریں۔
modified_strValue = re.subn ( پیٹرن، ریپلیس ویلیو، strValue )
# اصلی سٹرنگ پرنٹ کریں اور subn() کی آؤٹ پٹ
پرنٹ کریں ( 'اصل سٹرنگ: \n ' + strValue )
پرنٹ کریں ( 'subn() فنکشن کا آؤٹ پٹ:' )
پرنٹ کریں ( modified_strValue )

آؤٹ پٹ:

مندرجہ ذیل آؤٹ پٹ کے مطابق، 'L' اور 'H' حروف کو '*' کیریکٹر سے بدل دیا جاتا ہے۔

مثال 6: Split() فنکشن کا استعمال کرتے ہوئے سٹرنگ کو تقسیم کریں۔

مندرجہ ذیل اسکرپٹ کے ساتھ ایک ازگر فائل بنائیں جس نے ریجیکس پیٹرن کی بنیاد پر مین سٹرنگ کو متعدد حصوں میں تقسیم کرنے کے لیے split() فنکشن کا استعمال کیا:

# دوبارہ ماڈیول درآمد کریں۔
دوبارہ درآمد کریں

# اسٹرنگ ویلیو کی وضاحت کریں۔
strVal= 'روپا اختر؛ نیرا چودھری؛ مظہر الاسلام'
# پیٹرن کی وضاحت کریں جو ڈیٹا کو تقسیم کرنے کے لیے استعمال کیا جائے گا۔
پیٹرن = '[^A-Za-z]'
# تقسیم کی اقدار کو فہرست میں اسٹور کریں۔
split_result = دوبارہ تقسیم ( پیٹرن، strVal )
پرنٹ کریں ( 'اسپلٹ() فنکشن کا آؤٹ پٹ:' )
پرنٹ کریں ( تقسیم_نتیجہ )

آؤٹ پٹ:

آؤٹ پٹ کے مطابق، مین سٹرنگ کو '[^A-Za-z ]' پیٹرن کی بنیاد پر تین حصوں میں تقسیم کیا گیا ہے جو اسکرپٹ میں استعمال ہوتا ہے۔

نتیجہ

تاروں کو تلاش کرنے، تبدیل کرنے اور تقسیم کرنے کے لیے سب سے زیادہ استعمال ہونے والے میٹا کریکٹرز، رینجز، اور ازگر کے بلٹ ان فنکشنز کا مقصد اس ٹیوٹوریل میں سادہ Python اسکرپٹس کا استعمال کرتے ہوئے دکھایا گیا ہے۔