"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تقسيم السلاسل باستخدام المحددات المحفوظة باستخدام Java Lookahead وLookbehind؟

كيفية تقسيم السلاسل باستخدام المحددات المحفوظة باستخدام Java Lookahead وLookbehind؟

تم النشر بتاريخ 2024-11-08
تصفح:517

How to Split Strings with Delimiters Preserved Using Java Lookahead and Lookbehind?

تقسيم السلاسل مع المحددات المحفوظة

عند العمل مع سلاسل متعددة الأسطر محددة بمجموعة من المحددات الفريدة، قد يكون من الصعب تقسيم السلسلة مع الحفاظ أيضًا على المحددات نفسها. الطريقة القياسية String.split تفصل السلسلة فقط بناءً على المحدد المحدد، مع تجاهل الأحرف المحددة.

استخدام Lookahead و Lookbehind

مجموعة أدوات تطوير Java (JDK) يوفر حلاً باستخدام lookahead و lookbehind، وهي ميزات التعبيرات العادية التي تسمح لك بمطابقة الأحرف والتقاطها دون تضمينها في النتيجة النهائية.

إليك مثال على استخدام lookahead و lookbehind:

String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";

String[] splitWithDelimiter = input.split("((?

النمط:

    (?(?=;) تتطابق مع حرف فارغ قبل الفاصلة المنقوطة مباشرة (lookahead).
  • ((?

الإخراج:

[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ; , Text3, ;, DelimiterB, ;, Text4
[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ;, Text3, ;, DelimiterB, ;, Text4]
تحافظ هذه النتيجة على المحددات مع النص، مما يلبي متطلبات الحفاظ على المحددات سليمة أثناء تقسيم السلسلة.

تحسين سهولة القراءة

قد يكون من الصعب في بعض الأحيان قراءة وفهم التعبيرات العادية. لتحسين إمكانية القراءة، يمكنك إنشاء متغير باسم وصفي يمثل نمط التعبير العادي. على سبيل المثال:

static final String WITH_DELIMITER = "((?باستخدام العناصر النائبة وتنسيق String.format في Java، يمكنك جعل التعبير العادي أكثر سهولة وأسهل في التفسير.

بيان الافراج أعيد طبع هذه المقالة على: 1729746892 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3