EXTRAIR.REGEX
A função EXTRAIR.REGEX tem como resultado as correspondências ou grupos de captura no resultado de uma determinada expressão regular numa cadeia de origem.
EXTRAIR.REGEX(cadeia-origem; cadeia‑expressão‑regular; ocorrência-correspondência; ocorrência-grupo-captura)
cadeia-origem: um valor de cadeia para correspondência.
cadeia‑expressão‑regular: um valor de cadeia que representa uma expressão regular, usada para correspondência da cadeia-origem.
ocorrência-correspondência: um número inteiro opcional que indica o resultado que deve ser devolvido, caso existam vários resultados. São aceites números inteiros negativos e permitem aceder inversamente às correspondências, por isso -1 é a última correspondência, etc. Se 0 for introduzido, tem como resultado uma tabela de todas as correspondências. Se for omitido, tem como resultado a primeira correspondência.
ocorrência-grupo-captura: um número inteiro opcional que indica o grupo de captura que deve ser devolvido dentro de um resultado, caso existam grupos de captura na expressão regular. Os valores negativos não são aceites. Se o resultado for 0, tem como resultado uma tabela de todos os grupos de captura. Se for omitido, tem como resultado a correspondência inteira.
Notas
A cadeia‑expressão‑regular tem de estar em conformidade com a norma ICU.
Exemplos |
---|
Se tiver dados que não podem ser facilmente colocados nas linhas e colunas de uma folha de cálculo, pode usar EXTRAIR.REGEX para simplificar. Por exemplo, na tabela abaixo, os dados têm alguma estrutura, mas pode ser difícil separar os dados manualmente em várias células para revisão. |
A | |
---|---|
1 | Opiniões dos utilizadores |
2 | E-mail: jtalma@icloud.com Nome: Julie Talma Data: 17/05/2019 |
3 | E-mail: danny_rico@icloud.com Nome: Danny Rico Data: 02/06/2021 |
Para corrigir isso, pode adicionar mais colunas à tabela para Nome, E-mail, Classificação e Data e, em seguida, usar EXTRAIR.REGEX para encontrar os dados que pretende e obtê-los como resultado na célula. Por exemplo, pode introduzir a seguinte fórmula para obter um nome como resultado: Nesta fórmula, são usados os seguintes argumentos:
Essa fórmula pode ser repetida em cada linha de dados para ter como resultado o nome de cada pessoa que respondeu ao inquérito alterando origem-cadeia para corresponder as outras células que contêm a informação da opinião do utilizador. |
Para corrigir isso, pode adicionar mais colunas à tabela para Nome, E-mail, Classificação e Data e, em seguida, usar EXTRAIR.REGEX para encontrar os dados que pretende e obtê-los como resultado na célula. Por exemplo, pode introduzir a seguinte fórmula: Nesta fórmula, são usados os seguintes argumentos:
|
Reorganizar dados de uma lista com ocorrência‑correspondência |
---|
Por vezes, pode ter dados como a tabela (com o título Fornecedores) abaixo, que agrupa valores numa célula: |
Fornecedor | Artigo |
---|---|
A | Lentilhas, Grão-de-bico, Lima |
B | Maçãs, Laranjas, Limões |
C | Quinoa, Arroz, Chia |
Para separar os valores com base na loja e classificação, pode primeiro criar uma nova tabela, tal como a tabela abaixo: |
A | B | C | D | |
---|---|---|---|---|
1 | Classificação | A | B | C |
2 | 1 | |||
3 | 2 | |||
4 | 3 |
Para ter como resultado Lentilhas, o artigo com melhor classificação para o Fornecedor A, pode usar uma fórmula como esta na célula B2 da nova tabela para ter como resultado Lentilhas, o artigo com melhor classificação para o Fornecedor A: Nesta fórmula, são usados os seguintes argumentos:
|
A fórmula acima pode ser modificada para preencher a tabela para outros fornecedores e outros artigos.
|
Exemplos adicionais |
---|
Permitir que A1 seja "marina@exemplo.com joel@example.ca miguel@example.de". =EXTRAIR.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") tem como resultado "marina@example.com". =EXTRAIR.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2) tem como resultado "manuel@example.ca". =EXTRAIR.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; -1) tem como resultado "miguelexample.de". =EXTRAIR.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 1; 1) tem como resultado "marina". =EXTRAIR.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2; 2) tem como resultado "example.ca". |