Estoy tratando de llevar esta expresión regular a las hojas de Google. Envolver texto en JavaScript
en la solucion
const wrap = (s) => s.replace( /(?![^\n]{1,32}$)([^\n]{1,32})\s/g, '$1\n' ); Estoy tratando de reemplazar esta función con el REGEXREPLACE nativo para que funcione más rápido. He intentado algunas combinaciones, pero todo me da el Function REGEXREPLACE parameter 2 value " /(?![^\n]{1,32}$)([^\n]{1,32})\s/g" is not a valid regular expression. con =REGEXREPLACE(AP18," /(?![^\n]{1,32}$)([^\n]{1,32})\s/g","$1\n") error.
También probé: =REGEXREPLACE(AP18,"(?![^\n]{1,32}$)([^\n]{1,32})\s","$1\n")
mismo resultado
¿No puedo moverlo a una función nativa de Google? o hay algo mal con mi expresión regular?
Debe usar una solución peculiar cuando use REGEXREPLACE con una nueva línea en la pieza de reemplazo: la nueva línea "\n" no funciona, por lo que debe ingresar una nueva línea literal:
=REGEXREPLACE(D$7,"([^\n]{32}[^\s]{1,32})","$1 ")Para hacer eso, coloque el cursor en el lugar correcto en la pieza de reemplazo y presione CTRL+ENTER.
Tenga en cuenta que no uso una búsqueda anticipada. Esto se debe a que las funciones integradas solo admiten la sintaxis de expresiones regulares RE2, no la completa del motor JavaScript V8.
Alternativamente, cree una función personalizada en Extensión => Script de aplicaciones. Aquí hay dos variantes:
function WRAP1(str) { return str.replace(/(?![^\n]{1,32}$)([^\n]{1,32})\s/g, '$1\n'); } function WRAP2(str) { return str.replace(/([^\n]{32}[^\s]{1,16})/g, '$1\n'); }Prefiero este último porque envuelve un superSuperSuperSuperSuperSuperSuperSuperSuperSuperSuperSuperLongWordToo.
El motor de expresiones regulares RE2 utilizado por las funciones de regex de Hojas de cálculo de Google omite deliberadamente mirar hacia adelante y mirar hacia atrás . Eso significa que la afirmación (?!...) no es compatible con regexreplace() .
Por lo general, es posible escribir una expresión regular alternativa que no use esas características. Una solución completa puede implicar varias funciones de expresiones regulares anidadas.
Para conocer la sintaxis exacta de las expresiones regulares que usan las funciones de expresiones regulares en Hojas de cálculo de Google, consulte RE2 .
Tenga en cuenta que la función de hoja de cálculo query() utiliza expresiones regulares compatibles con Perl que admiten la búsqueda anticipada y retrospectiva. También tenga en cuenta que Google Apps Script utiliza expresiones regulares de JavaScript que también admiten esas afirmaciones.