Estou tentando corresponder a determinado texto e substituí-lo pelo texto, além de alguns caracteres extras. Texto de exemplo mínimo:
#10 Oranges. These are citrus fruits
Saída desejada:
#10 Oranges.
These are citrus fruits
Regex: (#\d{1,2}[^.]*\.)\s*
Substituir com: $1\n
(Eu Match using regular expressions
verifiquei)
A regex corresponde com êxito #10 Oranges.
. No entanto, a referência retroativa numerada não substitui o texto pelo grupo de captura, mas entra literalmente (a saída literal é $1\n
). Também tentei usar uma barra invertida para a referência retroativa numerada \1
e o resultado é o mesmo.
Tem algo que estou perdendo? Como reinserir o texto correspondente no google docs usando expressões regulares?
google-docs
regex
Do utilizador
fonte
fonte
Note: Capture groups only work with Google Sheets.
consulte support.google.com/docs/answer/62754#regular_expressionsRespostas:
Resposta curta
Em vez de usar a função interna de localizar e substituir, use o Script do Google Apps ou um complemento.
Explicação
No recurso Localizar e substituir do Google Documents, a peça Substituir não funciona com expressões regulares e também com o método replaceText () do Serviço de documentos no Script do Google Apps. Felizmente, o método de substituição do JavaScript funciona.
Para aprender o básico para criar um script simples, consulte https://developers.google.com/apps-script/overview
Código
Este código é uma adaptação do código incluído na referência
Referências
fonte
Replace with regular expressions
)Pouco hacky, mas não requer um extra extra de script e provavelmente cobrirá 99% dos seus casos de uso. Você ainda pode usar grupos de captura com
RegexReplace
e referência no texto de substituição por$1
ou$2
. Apenas divida seu regex em dois grupos de captura e concatene com um caractere aleatório (raramente usado) como~
. Em seguida, você pode pegar todo o valor retornado e substituí-lo~
por uma nova linha:Para obter mais informações sobre a sintaxe regex usada nas folhas do Google, consulte a especificação re2.
fonte
Conforme declarado pelo usuário nos comentários
Nota: os grupos de captura funcionam apenas com o Planilhas Google.
fonte