البرمجة

استخراج الفروع بين شرطتين في جافا

للحصول على جميع حالات الظهور للمقاطع الفرعية بين حرفين معينين في سلسلة نصية في لغة البرمجة جافا، يمكنك استخدام تعبيرات القوالب (Regular Expressions) لتحديد النمط المطلوب ثم استخدام الدالة المناسبة لإيجاد الفروع المطابقة.

في هذا السياق، يمكنك استخدام الدالة Pattern.matcher() لإيجاد جميع الفروع المطابقة في السلسلة النصية، وبعد ذلك يمكنك استخدام الدالة Matcher.find() للعثور على كل حالة ظهور.

فيما يلي مثال على كيفية تنفيذ هذا في جافا:

java
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String text = "/Math/Math1/Algerbra/node"; String regex = "/([^/]+)/"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(text); StringBuilder result = new StringBuilder(); while (matcher.find()) { result.append(matcher.group(1)).append("-"); } // Remove the trailing dash if (result.length() > 0) { result.setLength(result.length() - 1); } System.out.println(result.toString()); // Output: Math-Math1-Algerbra } }

في هذا المثال، يتم استخدام تعبير القالب /([^/]+)/ حيث يتم تطابق أي نص بين الشرطتين / و / ويتم استخراج النص بينهما باستخدام المجموعة المحاطة بقوسين.

بعد ذلك، يتم استخدام حلقة while لتمرير جميع الفروع المطابقة، وتتم إضافة كل فرع إلى StringBuilder ويتم فصلها بواسطة الشرطة -. في النهاية، يتم إزالة الشرطة الزائدة في نهاية الناتج.

هذا الكود سيُخرج الناتج المطلوب “Math-Math1-Algerbra” استنادًا إلى السلسلة النصية المعطاة.

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

بالطبع، دعني أوضح بعض المعلومات الإضافية حول الكود وكيفية عمله:

  1. تعبير القالب (Regex):

    • في التعبير "/([^/]+)/", تبدأ السلسلة بشرطة / وتنتهي بشرطة /.
    • [^/] تعني “أي شيء غير شرطة”.
    • + تعني “واحد أو أكثر”، لذا فإن ([^/]+) يعني “أي مجموعة من الأحرف غير الشرطة تحتوي على حرف واحد على الأقل”.
    • المجموعة داخل القوسين () تسمح بالتقاط المطابقة لاحقًا باستخدام matcher.group(1).
  2. Pattern و Matcher:

    • يستخدم الكود Pattern.compile(regex) لتحويل التعبير القالبي إلى كائن Pattern يمكن استخدامه للتحقق من التطابق في السلاسل النصية.
    • ثم يتم استخدام pattern.matcher(text) لإنشاء كائن Matcher يحتوي على السلسلة النصية التي يجب التحقق منها.
  3. البحث عن التطابقات:

    • يتم استخدام حلقة while (matcher.find()) لتكرار البحث عن التطابقات داخل النص الأصلي.
    • matcher.find() تقوم بإجراء بحث جديد عن التطابقات في كل دورة من الحلقة، وتعيد true إذا وُجد تطابق جديد و false إذا انتهى البحث.
  4. استخراج النتائج:

    • باستخدام matcher.group(1)، يتم استرجاع المجموعة المطابقة (النص بين الشرطتين) في كل مرة يتم فيها العثور على تطابق.
    • يتم إضافة هذه النصوص المستخرجة إلى StringBuilder وتفصل بشرطة -.
  5. إزالة الشرطة الزائدة:

    • في النهاية، يتم إزالة الشرطة الزائدة في نهاية الناتج باستخدام result.setLength(result.length() - 1)، حيث يتم تقليص طول السلسلة بمقدار واحد لإزالة الشرطة الزائدة.

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

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

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

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

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