المبرمج العربي نشر 19 ديسمبر 2015 أرسل تقرير نشر 19 ديسمبر 2015 أحاول مطابقة من سطر From إلى نهاية سطر Subject في النص التالي:.... From: XXXXXX Date: Tue, 8 Mar 2011 10:52:42 -0800 To: XXXXXXX Subject: XXXXXXX .... لذلك كتبت هذا:/From:.*Date:.*To:.*Subject/m لكن مشكلتي أن هذا السطر لا يطابق نهاية سطر subject فكيف أستطيع حل هذه المشكلة؟ اقتباس
0 هشام رزق الله نشر 19 ديسمبر 2015 أرسل تقرير نشر 19 ديسمبر 2015 حسب رأيي فإن أسهل طريقة في لغة الروبي لمطابق أسطر متعددة هي استخدام المُعدل (modifier) /m لتفعيل وضع الأسطر المتعدد (على سبيل المثال للسماح لـ . بمطابقة الأسطر الجديدة)، ويمكنك استخدام الرمز ؟ لتنفيذ تطابق من نوع (non-greedy).مثال على الشرح في الأعلى:message = <<-MSG Random Line 1 Random Line 2 From: person@example.com Date: 01-01-2011 To: friend@example.com Subject: This is the subject line Random Line 3 Random Line 4 MSG message.match(/(From:.*Subject.*?)\n/m)[1] => "From: person@example.com\nDate: 01-01-2011\nTo: friend@example.com\nSubject: This is the subject line"لمزيد من المعلومات حول التعابير النمطية أنصحك بقراءة التوثيق الرسمي لروبي.ومن الحلول الأخرى إذا ردت فقط مطابقة حسب رمز "العودة إلى السطر" فيمكنك مثلا تحويل جميع رموز العودة إلى رمز | (في حالة عدم وجوده في النص) عن طريق السطر التالي:aString.split("\n").join("|") وبعد ذلك يمكنك استخراج الجزء الذي تريده. اقتباس
السؤال
المبرمج العربي
أحاول مطابقة من سطر From إلى نهاية سطر Subject في النص التالي:
لذلك كتبت هذا:
لكن مشكلتي أن هذا السطر لا يطابق نهاية سطر subject فكيف أستطيع حل هذه المشكلة؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.