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

302
Vistas
Google Apps Script getPlainBody () de la expresión regular de la clase GmailMessage no funciona

esta es mi primera pregunta sobre stackoverflow, así que por favor déjenme saber cómo puedo mejorar la legibilidad para otros.

Estoy tratando de usar expresiones regulares en la cadena que obtuve de getPlainBody() en GmailMessage Class pero de alguna manera no funciona cuando trato de hacerlo directamente en la cadena devuelta por getPlainBody() pero funciona bien cuando agrego manualmente \n caracteres.

Código que funciona:

 function RegularExp() { //manually entered \n characters into string that I copied and pasted from getPlainBody() var string = "Personal Message\nraw material: oak wood 100kg\nTRACKING NUMBER 7777777777\n<somehyperlink\nFROM SomeBrand"; //my goal is to get: raw material: oak wood 100kg var regExp = new RegExp("(.*?)\n(?=TRACKING NUMBER)","g"); var PersonalMessage = regExp.exec(string)[1]; Logger.log(PersonalMessage); //works perfectly fine }

Código que no funciona:

 for (var j in messages){ var message = messages[j]; var plainText = message.getPlainBody(); //getting plainbody of fedex mail of interest //trying to extract the personal message var regExp = new RegExp("(.*?)\n(?=TRACKING NUMBER)","g"); var PersonalMessage = regExp.exec(plainText)[1]; Logger.log(PersonalMessage); //won't show anything }

Mi pregunta es ¿por qué funciona cuando ingreso manualmente \n pero no cuando uso la cadena que devolvió getPlainBody()? Estoy usando exactamente el mismo patrón de expresiones regulares y no puedo ver por qué.

A continuación se encuentran los enlaces que utilicé para tratar de resolver mi problema (o podría ser un tonto al no poder aplicar la solución a este problema)

Nueva línea en la función getplainbody del script de la aplicación de Gmail

Google Apps Script: getPlainBody() comportamiento extraño

Regex - secuencia de comandos de aplicaciones de Google

Gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El tema es que el . no coincide con un carácter CR en la expresión regular de JavaScript (tipo ECMAScript).

Puedes usar

 var regExp = /(.*)(?=\r?\nTRACKING NUMBER)/g;

Las coincidencias de expresiones regulares

  • (.*) - Grupo 1: cualquier cero o más caracteres que no sean caracteres de salto de línea (no coincide con los caracteres LF y CR)
  • (?=\r?\nTRACKING NUMBER) : una anticipación positiva que coincide con una ubicación seguida inmediatamente por
    • \r? - un CR opcional (carácter de retorno de carro)
    • \n - un carácter de avance de línea
    • TRACKING NUMBER : una cadena fija (al final de la siguiente línea).
about 4 years ago · Juan Pablo Isaza 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