البرمجة

كيفية تقسيم سلسلة نصوص بواسطة فواصل متعددة في Java Regex

لتحقيق هذا، يمكنك استخدام تعبيرات الفواصل في تعبيرات الانفصال لتقسيم السلسلة بناءً على الفواصل المتعددة. في هذه الحالة، يمكنك استخدام الرموز النمطية لتحديد الفواصل المتعددة التي تريد الانفصال عنها. على سبيل المثال، للانفصال عن السلاسل التي تبدأ بـ “http://” أو “=http://” أو “=http%25253A%25252F%25252F”، يمكنك استخدام الرموز النمطية التالية في تعبير الانفصال:

java
String[] parts = yourString.split("\\|(?=(?:[^']*'[^']*')*[^']*$)(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)(?=http://|=[hH]ttp://|=[hH]ttp%25253A%25252F%25252F)");

هذا الرمز النمطي يستخدم lookahead للتحقق من عدم وجود علامات اقتباس فردية (‘ ‘) أو مزدوجة (” “) بين الفواصل. إذا كنت تستخدم العلامات في السلاسل النصية، فيجب تعديل الرمز النمطي وفقًا لذلك.

ملحوظة: يمكن أن يكون الرمز النمطي المذكور أعلاه معقدًا وصعب التفسير. يفضل دائمًا اختبار وفحص الرموز النمطية بدقة للتأكد من أنها تعمل بشكل صحيح مع جميع حالات الاستخدام المحتملة.

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

بالطبع، هنا بعض المعلومات الإضافية حول الرمز النمطي المستخدم في الحل:

  • \\|: يعني الفاصلة العمودية وهو الفاصلة التي تفصل بين القيم في السلسلة.
  • (?=...): lookahead إيجابي، يستخدم للتأكد من وجود نمط معين قبل الموضع الحالي.
  • (?:...): تعبير عادي للتجميع دون حفظ القيمة.
  • [^']*'[^']*': يتطابق مع أي نص لا يحتوي على علامات اقتباس فردية (‘ ‘) ولكن يحتوي على اقتباس فردي في الوسط.
  • [^\"]*\"[^\"]*\": يتطابق مع أي نص لا يحتوي على علامات اقتباس مزدوجة (” “) ولكن يحتوي على اقتباس مزدوج في الوسط.
  • (?=http://|=[hH]ttp://|=[hH]ttp%25253A%25252F%25252F): lookahead إيجابي للتحقق من وجود أحد النماذج المحددة بعد الفاصلة العمودية.

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

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