Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

233
Vistas
expresiones regulares de Javascript a hojas de Google

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?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

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.

about 4 years ago · Santiago Trujillo Denunciar

0

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.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda