تقسيم السلاسل مع المحددات المحفوظة
عند العمل مع سلاسل متعددة الأسطر محددة بمجموعة من المحددات الفريدة، قد يكون من الصعب تقسيم السلسلة مع الحفاظ أيضًا على المحددات نفسها. الطريقة القياسية 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، يمكنك جعل التعبير العادي أكثر سهولة وأسهل في التفسير.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3