فهم مجموعات التقاط Java Regex
في مقتطف التعليمات البرمجية هذا، نستخدم مكتبة التعبير العادي (regex) لـ Java لاستخراج أجزاء من السلسلة. يتم تعريف التعبير العادي كـ "(.)(\d )(.)"، حيث:
تنفيذ التعبير العاديعندما يتم تنفيذ التعبير العادي مقابل السلسلة "تم وضع هذا الطلب لـ QT3000! حسنًا؟"، فإنه ينتج النتائج التالية :
القيمة التي تم العثور عليها: تم تقديم هذا الطلب لـ QT3000! نعم؟ القيمة التي تم العثور عليها: تم تقديم هذا الطلب لـ QT القيمة التي تم العثور عليها: 3000
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000فهم محددات الكمية الجشعة
المحدد الكمي الافتراضي المستخدم في التعبير العادي هو جشع، مما يعني أنه يطابق أكبر عدد ممكن من الأحرف لإرضاء المجموعة التالية. في هذه الحالة، ".*" يطابق السلسلة بأكملها حتى يتم العثور على الرقم الأول، دون ترك أي أحرف للمجموعة الثالثة.
استخدام محددات الكمية المترددة
للمطابقة فقط الأحرف الضرورية، يمكننا استخدام محدد كمي متردد، يشار إليه بعلامة استفهام. استبدال "(.)" بـ "(.
؟)" يطابق أقل عدد ممكن من الأحرف، مما يؤدي إلى الإخراج التالي:القيمة التي تم العثور عليها: تم تقديم هذا الطلب لـ QT3000! نعم؟ القيمة التي تم العثور عليها: تم تقديم هذا الطلب لـ QT القيمة التي تم العثور عليها: 3000
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
تسمح لنا مجموعات الالتقاط باستخراج أجزاء معينة من سلسلة مطابقة لمزيد من الاستخدام. في هذا المثال، يمكننا الوصول إلى القيمة المطابقة لكل مجموعة من خلال طريقة "group()" لكائن "Matcher"، كما هو موضح في مقتطف التعليمات البرمجية أدناه:
Pattern Pattern = Pattern.compile( "(.*?)(\\d )(.*)"); Matcher matcher = Pattern.matcher(line); إذا (matcher.find()) { System.out.println("المجموعة 1:" matcher.group(1)); System.out.println("المجموعة 2:" matcher.group(2)); System.out.println("المجموعة 3:" matcher.group(3));تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3