للقيام بذلك، يمكنك استخدام تعبيرات ال regex في جافا لتحليل النصوص واستخراج القيم بين القوسين. سنقوم بتحويل النص المعطى إلى مجموعة من الأزواج الرئيسية والقيم، ثم نضيف هذه الأزواج إلى الخريطة.
فيما يلي الكود المطلوب:
javaimport java.util.*;
import java.util.regex.*;
public class Main {
public static void main(String[] args) {
String content = " (abcd, 01) \n (xyz,AB)\n (pqrst, 1E)";
// تعبير عن regex للعثور على الأزواج بين القوسين
String regex = "\\(([^,]+),\\s*([^)]+)\\)";
// إنشاء خريطة لتخزين القيم
Map map = new HashMap<>();
// إنشاء مطابقة لتحليل النص
Matcher matcher = Pattern.compile(regex).matcher(content);
// حلل النص وضع الأزواج في الخريطة
while (matcher.find()) {
String key = matcher.group(1).trim(); // القيمة بين القوسين الأولى
String value = matcher.group(2).trim(); // القيمة بين القوسين الثانية
map.put(key, value);
}
// طباعة الخريطة للتحقق
for (Map.Entry entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
سيتم تحليل النص المعطى باستخدام regex للعثور على الأزواج بين القوسين. ثم ستتم إضافة هذه الأزواج إلى الخريطة وطباعتها للتحقق.
المزيد من المعلومات
بالطبع، سأوفّر المزيد من المعلومات لتوضيح العملية بشكل أفضل.
في هذا الكود، نقوم بالخطوات التالية:
-
القراءة من الملف:
يتم تعريف النص الذي نريد تحليله في متغيرcontent
. يمكنك استبدال قيمة هذا المتغير بنص يتم قراءته من ملف باستخدام عمليات القراءة المناسبة في جافا. -
استخدام تعبيرات ال regex:
تُستخدم تعبيرات ال regex (تعبيرات الانتظاب النظامي) لتحديد النمط الذي نريد البحث عنه في النص. في هذا السياق، نريد البحث عن الأزواج بين القوسين. تعبير ال regex\\(([^,]+),\\s*([^)]+)\\)
يعني:\\(
: بحث عن القوس الأيسر “(“.([^,]+)
: بحث عن أي حرف غير قمة الفاصلة “,” بمقدار واحد أو أكثر، وضع قيمة النص بين القوسين في مجموعة.,\\s*
: بحث عن الفاصلة مع أي مسافة بيضاء صفرية أو أكثر بينها.([^)]+)
: بحث عن أي حرف غير القوس الأيمن “)” بمقدار واحد أو أكثر، وضع قيمة النص بين القوسين في مجموعة.\\)
: بحث عن القوس الأيمن “)”.
-
إنشاء الخريطة:
بعد أن نجد كل زوج من القيم بين القوسين، نقوم بإنشاء خريطة (HashMap
) لتخزين هذه الأزواج. ثم نقوم بإنشاء مطابقة (Matcher
) باستخدام تعبير ال regex، ونقوم بتحليل النص ووضع الأزواج في الخريطة باستخدام دالةput
. -
طباعة الخريطة:
أخيرًا، نقوم بطباعة الخريطة للتحقق من أن الأزواج تم تخزينها بشكل صحيح. هذا يتم عبر الحلقةfor
التي تقوم بالتحقق من كل زوج في الخريطة وطباعة قيمته وقيمته.
هذه هي الخطوات الأساسية لحل المشكلة باستخدام regex في جافا.