إزالة كل شيء بين العلامة (بما في ذلك العلامة نفسها) باستخدام regex / eclipse

StackOverflow https://stackoverflow.com/questions/2541676

  •  23-09-2019
  •  | 
  •  

سؤال

أنا جديد إلى حد ما في معرفة كيفية عمل Regex ، لكن هذا الأمر محبط.

لدي وثيقة XML ضخمة مع الكثير منdescription>blahblahblah</description> العلامات. أريد إزالة أي وجميع حالات <description></description>.

أنا أستخدم Eclipse وقد جربت بعض الأمثلة على Regex التي وجدتها عبر الإنترنت ، ولكن لا شيء يعمل.

<description>(.*?)</description>

ألا يجب أن يعمل هذا؟

تعديل:

هنا هو الرمز الفعلي.

<description><![CDATA[<center><table><tr><th colspan='2' align='center'><em>Attributes</em></th></tr><tr bgcolor="#E3E3F3"><th>ID</th><td>308</td></tr></table></center>]]></description>

لا يوجد حل صحيح

نصائح أخرى

لست على دراية بـ Eclipse ، لكنني أتوقع أن تستخدم منشأة البحث REGEX نكهة regex المدمجة من Java. ربما تحتاج فقط إلى تحديد مربع يسمى "dotall" أو "خط واحد" أو شيء مشابه ، أو يمكنك إضافة المعدل المضمن المقابل إلى regex:

(?s)<description>(.*?)</description>

من شأنه أن يسمح . لمطابقة الخطوط الجديدة ، وهو ما لا يكون افتراضيًا.

تحرير: هذا يفترض هناك نكون الخطوط الجديدة داخل <description> العنصر ، وهذا هو السبب الوحيد الذي جعلني أفكر في سبب عدم عمل Regex الخاص بك. أنا أفترض أيضًا أنك تقوم حقًا بإجراء بحث regex ؛ هل هذا تلقائي في Eclipse ، أم أنه يتعين عليك الاختيار بين Regex والبحث الحرفي؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top