Tengo una cadena que tiene un carácter ( \n ) repetido varias veces. Quiero reemplazar estas repeticiones por solo una repetición menos .
Así que supongamos que tenemos una cadena como esta (\n se repite 3 veces)
hello\n\n\ngoodbyeY quiero convertirlo a esto (\n se repite 2 veces)
hello\n\ngoodbye Sé cómo averiguar con expresiones regulares cuándo se repite la ocurrencia (por ejemplo /\n\n+/g ), pero no sé cómo capturar el número exacto de repeticiones para usarlo en el reemplazo.
¿Es posible hacer eso con Regex?
Puedes buscar usando esta expresión regular:
/\n(\n*)/g Y reemplazar usando: $1
Detalles RegEx:
\n : Coincide con un salto de línea(\n*) : haga coincidir 0 o más saltos de línea y captúrelos en el primer grupo de captura. Tenga en cuenta que estamos capturando uno menos \n s en este grupo de captura$1 colocará todos los \n con referencia inversa del primer grupo de captura, reduciendo así los saltos de línea en uno.Código:
const string = 'hello\n\n\ngoodbye'; console.log(string); const re = /\n(\n*)/g; var repl = string.replace(re, "$1"); console.log(repl);reemplazar (\n*)\n con $1 ?
let str = 'hello\n\n\ngoodbye' console.log(str) console.log(str.replace(/(\n*)\n/,'$1'))