2016-04-22 10 views
0

Ich habe fast 1 million Zeile xml Daten, ich möchte mehr als 10 verschiedene Inhalte mit fast gleichen, aber einige andere Text ersetzen. Siehe Beispiel untenWie wählen Sie mehrere verschiedene Text/Inhalt mit regulären Ausdruck

<wp:postmeta> 
     <wp:meta_key>_edit_last</wp:meta_key> 
     <wp:meta_value><![CDATA[5590]]></wp:meta_value> 
    </wp:postmeta> 
    <wp:postmeta> 
     <wp:meta_key>slide_template</wp:meta_key> 
     <wp:meta_value><![CDATA[default]]></wp:meta_value> 
    </wp:postmeta> 
    <wp:postmeta> 
     <wp:meta_key>_jetpack_related_posts_cache</wp:meta_key> 
     <wp:meta_value><![CDATA[a:0:{}]]></wp:meta_value> 
    </wp:postmeta> 
    <wp:postmeta> 
     <wp:meta_key>vibe_author</wp:meta_key> 
     <wp:meta_value><![CDATA[H]]></wp:meta_value> 
    </wp:postmeta> 
    <wp:postmeta> 
     <wp:meta_key>vibe_prev_next</wp:meta_key> 
     <wp:meta_value><![CDATA[H]]></wp:meta_value> 
    </wp:postmeta> 

nehme ich

<wp:postmeta> 
      <wp:meta_key>vibe_author 

und oder

vibe_prev_next</wp:meta_key> 
      <wp:meta_value><![CDATA[H]]></wp:meta_value> 
     </wp:postmeta> 

Ich wende diesen Code ersetzen möchten:

(<wp:postmeta> 
      <wp:meta_key>)vibe_author|vibe_prev_next.*?</wp:postmeta> 

Aber es ist nur wählen

<wp:postmeta> 
      <wp:meta_key>vibe_author 

oder

vibe_prev_next</wp:meta_key> 
      <wp:meta_value><![CDATA[H]]></wp:meta_value> 
     </wp:postmeta> 

Wie kann ich wählen

<wp:postmeta> 
      <wp:meta_key>vibe_author</wp:meta_key> 
      <wp:meta_value><![CDATA[H]]></wp:meta_value> 
     </wp:postmeta> 

und

<wp:postmeta> 
      <wp:meta_key>vibe_prev_next</wp:meta_key> 
      <wp:meta_value><![CDATA[H]]></wp:meta_value> 
     </wp:postmeta> 

auf einmal?

Antwort

0

Sie waren in der Nähe, aber Sie setzen die Alternation | in die oberste Ebene des Ausdrucks.

Es sollte auf eine Gruppe von Werten angewendet werden, die Sie zwischen z. (vibe_author|vibe_prev_next) versuchen, diesen Ausdruck verwenden:

(?s)<wp:postmeta>\s*<wp:meta_key>(?:vibe_author|vibe_prev_next).*?</wp:postmeta> 
+0

es Arbeit ist nicht .. –

+0

haben Sie den Suchmodus zu Regular Expression eingestellt? Auch welche Version von Notepad ++ benutzen Sie? – JonM

+0

ja, natürlich überprüfe ich Regex und neue Zeile Radio-Taste –