REGEX para recortar una cadena después de 180 caracteres y antes |

En un archivo de texto separado por tubería, necesito recortar la primera columna a no más de 180 caracteres.

Si hay menos de 180 caracteres, mantendré lo que haya.

Ahora la parte fea... Estoy tratando de hacer esto en Notepad++, lo que significa que puedo usar buscar/reemplazar con expresiones regulares pero no con el código real. No estoy seguro de cómo hacer una expresión regular "Si golpeas una tubería antes de 180, no necesitas recortar nada".

preguntado el 03 de mayo de 12 a las 17:05

No tengo acceso a Notepad++, pero en la mayoría de las variaciones de expresiones regulares, [^|]{0,180} coincidirá con 0 a 180 caracteres no verticales. -

1 Respuestas

Puede utilizar esta expresión regular:

^([^|]{0,180})[^|]+(.*)$

y esto como reemplazo:

\1\2

Aquí hay una captura de pantalla del cuadro de diálogo Buscar/Reemplazar en Notepad++:

Bloc de notas++ expresiones regulares

Lo probé con estos datos ficticios:

http://pastie.org/3855302

Y resultó con esta salida:

http://pastie.org/3855308

contestado el 03 de mayo de 12 a las 20:05

Parece que el Bloc de notas no está jugando bien con su recomendación por alguna razón. Aunque agradezco tu sugerencia! - Paso

@Korak Descargué e instalé Notepad ++ y lo probé, y funciona perfectamente. ¿Puede dar algunos datos de muestra en los que está trabajando? - LeonardChallis

@Korak Edité la respuesta para mostrar que funciona para mí en Notepad ++, incluida una captura de pantalla para compararla con la suya: LeonardChallis

¡Gracias! Eso me funciona perfectamente. Hubo una actualización para Notepad ++ que no había actualizado también que impidió que funcionara cuando lo probé por primera vez. ¡Muchas gracias por toda su ayuda! - Paso

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.