2010-07-10 20 views
13

Tengo un archivo con mucha edición de texto usando NotePad ++.NotePad ++ replace problem

por ejemplo

<span class="italic">some text</span><span class="bold">another text or some text</span>

me gustaría utilizar expresiones regulares Notepad ++ 's reemplazar para reemplazar

<span class"italic>some text</span> a <i>some text</i> y <span class="bold">another text or some text</span> a <b>another text or some text</b>

soy capaz de coincidir con el texto lapso sin embargo Cómo reemplazarlos con NotePad ++

Buscar <span class="italic">text12312</span> y reemplazarlo por <i>[a-zA-Z]*</i> realmente pondrá el texto "[a-zA-Z]*" en la cadena reemplazada y no en "text12312".

Respuesta

24

<span class="italic">([^<]+)</span> =><i>\1</i>

<span class="bold">([^<]+)</span> =><b>\1</b>

[^<]+ coincide con uno o más de cualquier carácter excepto <, y los paréntesis capturarlo en el grupo 1 #. \1 inserta el texto capturado en la cadena de reemplazo.

3

utilizar una expresión regular como: <span class="italic">([\w\s\d]+)</span>

y el reemplazo como: <i>$1</i>

El punto importante aquí es crear un bloque de coincidencia para el texto rodeándolo entre paréntesis, es decir ([\w\s\d]+) que coincide con uno o más:

  • \w caracteres de texto
  • \s chars espacio
  • \d caracteres numéricos

En su cadena de reemplazo, haga referencia al primer y único grupo emparejado con $1.

+0

' un texto y algo más text ' – Amarghosh

+0

@Amarghosh, como se indica en la pregunta, OP solo quiere hacer coincidir' [A-Za-z] 'entre la etiqueta span que excluye la necesidad de buscar espacios anidados . – krock

+0

Él usa '[a-zA-Z] *' y su texto de muestra contiene dígitos: simplemente sugería que si su texto es lo suficientemente grande, tarde o temprano se dará cuenta de que no es una buena idea ni siquiera buscar -n -replace html con regex – Amarghosh

0

ejemplo de apuntes: tratando de reemplazar este texto: 0x0145 prueba con este texto: [0x0145] prueba

enter image description here