Estoy tratando de hacer coincidir cierto texto y luego reemplazarlo con el texto más algunos caracteres adicionales. Texto de ejemplo mínimo:
#10 Oranges. These are citrus fruits
Salida deseada:
#10 Oranges.
These are citrus fruits
Regex: (#\d{1,2}[^.]*\.)\s*
Reemplazar con: $1\n
(Lo he Match using regular expressions
comprobado)
La expresión regular coincide con éxito #10 Oranges.
. Sin embargo, la referencia numérica no reemplaza el texto con el grupo de captura sino que simplemente entra literalmente (la salida literal es $1\n
). También he intentado usar una barra diagonal inversa para la referencia numérica \1
y el resultado es el mismo.
¿Se me escapa algo? ¿Cómo vuelvo a insertar texto coincidente en documentos de Google usando expresiones regulares?
fuente
Note: Capture groups only work with Google Sheets.
consulte support.google.com/docs/answer/62754#regular_expressionsRespuestas:
Respuesta corta
En lugar de utilizar la función integrada de buscar y reemplazar, use Google Apps Script o un complemento.
Explicación
En la función Buscar y reemplazar de Documentos de Google, la parte Reemplazar no funciona con expresiones regulares y tampoco funciona con el método replaceText () del Servicio de documentos en Google Apps Script, afortunadamente el método de reemplazo de JavaScript funciona.
Para conocer los conceptos básicos para crear un script simple, consulte https://developers.google.com/apps-script/overview
Código
Este código es una adaptación del incluido en la referencia.
Referencias
fuente
Replace with regular expressions
)Poco hacky, pero no requiere un script adicional adicional y probablemente cubrirá el 99% de sus casos de uso. Todavía puede usar grupos de captura con
RegexReplace
y referencia en el texto de reemplazo con$1
o$2
. Simplemente divida su expresión regular en dos grupos de captura y concatene con un carácter aleatorio (de uso poco frecuente) como~
. Luego puede tomar todo el valor devuelto de eso y reemplazarlo~
con una nueva línea:Para obtener más información sobre la sintaxis de expresiones regulares utilizada en las hojas de Google, consulte las especificaciones de re2
fuente
Como lo indicó el usuario en los comentarios
Nota: Los grupos de captura solo funcionan con Hojas de cálculo de Google.
fuente