PCRE2 10.45

PCRE2 10.45

نصف سال سے زیادہ کی ترقی کے بعد، PERL سے ہم آہنگ ریگولر ایکسپریشن لائبریری کا 10.45 جاری کیا گیا ہے۔ PCRE2، C میں لکھا اور BSD لائسنس کے تحت تقسیم کیا گیا۔ یہ نسبتاً بڑی ریلیز ہے، جس میں نئی ​​خصوصیات، کچھ بگ فکسز، اور کچھ تبدیلیاں شامل ہیں جن کا پیچھے کی طرف مطابقت پر معمولی اثر پڑتا ہے۔

ورژن 10.45 نئے پروجیکٹ مینٹینرز کی طرف سے تیار کردہ پہلی ریلیز ہے، جو PCRE اور PCRE2 منصوبوں کے خالق اور دیکھ بھال کرنے والے فلپ ہیزل کا شکریہ ادا کرتے ہیں۔

تبدیلیوں کی فہرست:

  • جے آئی ٹی کی تالیف کا منصوبہ سلجیت اب گٹ سب موڈیول کے طور پر استعمال کیا جاتا ہے۔
  • یونیکوڈ ڈیٹا کو ورژن میں اپ ڈیٹ کیا گیا۔ 16.
  • یونیکوڈ Ll، Lt، اور Lu پراپرٹیز کی کیس غیر حساس میپنگ کو Perl سے مماثل کرنے کے لیے تبدیل کر دیا گیا ہے۔ پہلے، /p{Ll}/i پیٹرن صرف چھوٹے حروف سے مماثل تھا (چاہے کیس غیر حساس مماثلت کی وضاحت کی گئی ہو)۔ یہ تبدیلی POSIX کلاسز جیسے [:lower:] کے کیس غیر حساس مماثلت کو بھی متاثر کرتی ہے۔
  • نیا فنکشن scan_substring شامل کیا گیا۔ یہ ایک نئی قسم کا دعویٰ ہے جو ذیلی پیٹرن کے خلاف کیپچرنگ بلاک کے مواد سے میل کھاتا ہے۔
    مثال کے طور پر، اظہار b(w++)(*scan_substring:(1).+rh) ایک ایسا لفظ تلاش کرتا ہے جس میں نایاب انگریزی حرف کی ترتیب "rh" ہے جو بالکل شروع میں نہیں ہے۔
  • کے ساتھ ہم آہنگ کریکٹر کلاسز کے لیے سپورٹ شامل کی گئی۔ UTS#18 (یونیکوڈ ریگولر ایکسپریشنز)، نئے PCRE2_ALT_EXTENDED_CLASS آپشن کا استعمال کرتے ہوئے۔ ایسا کرنے کے لیے، آپ کو [ کیریکٹر کلاسز میں بطور میٹا کریکٹر اور آپریٹرز &&، — اور ~~ استعمال کرنے کی ضرورت ہے، جو آپ کو آسانی سے کریکٹر کلاسز کے گھٹاؤ اور چوراہوں کو انجام دینے کی اجازت دیتا ہے۔
    مثال کے طور پر، تھائی یا یونانی حروف سے ملنے کے لیے (لیکن ان اسکرپٹ میں حروف یا دیگر حروف نہیں)، آپ اظہار [p{L}&&[p{Thai}||p{Greek}]] کا استعمال کر سکتے ہیں۔
  • (?[…]) نحو کا استعمال کرتے ہوئے پرل طرز کی توسیع شدہ کریکٹر کلاسز کے لیے تعاون شامل کیا گیا۔ یہ کریکٹر کلاسز کے گھٹاؤ اور انقطاع کو ظاہر کرنے کی بھی اجازت دیتا ہے، لیکن اس سے مختلف نحو کا استعمال کرتے ہوئے UTS#18 (یونیکوڈ ریگولر ایکسپریشنز)۔
    مثال کے طور پر، تھائی یا یونانی حروف سے ملنے کے لیے (لیکن ان اسکرپٹ میں حروف یا دیگر حروف نہیں)، آپ اظہار استعمال کر سکتے ہیں (?[p{L} & (p{Thai} + p{Greek})])۔
  • کریکٹر کلاس میچنگ میکانزم میں نمایاں بہتری۔ مرتب کردہ کریکٹر کلاسز اب زیادہ کمپیکٹ ہیں اور سیٹ پر بائنری سرچ کا استعمال کرتے ہوئے بڑے یا پیچیدہ کریکٹر سیٹ کے لیے تیز تر مماثلت فراہم کرتے ہیں۔
  • ایک نیا فنکشن pcre2_set_optimize() API میں شامل کیا گیا ہے تاکہ آپٹیمائزیشن کا انتظام کیا جا سکے۔
  • pcre2_substitute() فنکشن میں بہت سی بہتری۔
  • دیگر بہتری اور بگ کی اصلاحات۔

ماخذ: linux.org.ru

نیا تبصرہ شامل کریں