البرمجة

استخراج ومعالجة النصوص بواسطة تعابير الريجكس في JavaScript

في سياق لغة البرمجة JavaScript، يمكن تحقيق الهدف الذي تسعى إليه عبر استخدام التعابير العادية (regex) بطريقة تتيح لك الحصول على المطابقات والنص الموجود بينها في نفس الوقت. يتطلب ذلك استخدام تعابير فعالة والتعامل مع ميزة تحقيق المطابقات في حلقة تكرار.

لتحقيق هذا الهدف، يمكنك تحسين الشيفرة التي قدمتها، بحيث تقوم بحفظ النص بين المطابقات في مصفوفة منفصلة. على سبيل المثال:

javascript
let regex = /(.*?)<\/tag>/g; let str = "content1 some text content2 more text content3"; let matches = []; let remainingText = str; let match; while ((match = regex.exec(str)) !== null) { let tagContent = match[1]; let matchStart = match.index; let matchEnd = matchStart + match[0].length; // Save the matched content matches.push(tagContent); // Extract the remaining text remainingText = remainingText.substring(0, matchStart) + remainingText.substring(matchEnd); } // Now, you have the array 'matches' with extracted content, and 'remainingText' without the tags console.log(matches); // ['content1', 'content2', 'content3'] console.log(remainingText); // ' some text more text '

في هذا الكود، يتم استخدام (.*?) للتأكد من حصولنا على المحتوى بين الوسوم بشكل غير جشع، وتم استخدام متغير remainingText لحفظ النص الذي تم إزالة المطابقات منه.

المزيد من المعلومات

بالتأكيد، دعونا نوسع المناقشة بمزيد من التفاصيل. يمكنك تحقيق هذا الهدف باستخدام مزيد من الميزات في لغة البرمجة JavaScript وتطوير الشيفرة بمزيد من التعقيد إذا كنت تحتاج إلى مزيد من الإمكانيات.

لتحسين الكود، يمكنك استخدام دوال إضافية مثل slice() لتبسيط العمليات. فيما يلي نسخة محسنة من الكود:

javascript
let regex = /(.*?)<\/tag>/g; let str = "content1 some text content2 more text content3"; let matches = []; let remainingText = str; let match; while ((match = regex.exec(str)) !== null) { let tagContent = match[1]; let matchStart = match.index; let matchEnd = matchStart + match[0].length; // Save the matched content matches.push(tagContent); // Extract the remaining text remainingText = remainingText.slice(0, matchStart) + remainingText.slice(matchEnd); } // Now, you have the array 'matches' with extracted content, and 'remainingText' without the tags console.log(matches); // ['content1', 'content2', 'content3'] console.log(remainingText); // ' some text more text '

هذا الكود يستخدم دالة slice() لتبسيط عمليات تحريك واستخراج النصوص. يمكنك أيضًا استخدام دوال أخرى مثل splice() لتعديل المصفوفة إذا كنت بحاجة إلى مزيد من العمليات على المطابقات.

يُشدد هنا على أهمية فهم الخصائص الخاصة بالدوال المستخدمة وضرورة التحقق من توافرها في الإصدار الذي تستهدفه من JavaScript.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر