REGEX.EXTRACT

Funkcja REGEX.EXTRACT zwraca dopasowania lub grupy przechwytujące w dopasowaniu wyrażenia regularnego podanego w ciągu źródłowym.

REGEX.EXTRACT(ciąg-źródłowy; ciąg-wyrażenia-regularnego; wystąpienie-dopasowania; wystąpienie-grupy-przechwytującej)

ciąg-źródłowy: Wartość ciągu, w której przeprowadzane jest dopasowanie.

ciąg-wyrażenia-regularnego: Wartość ciągu reprezentująca wyrażenie regularne używane do dopasowania argumentu ciąg-źródłowy.

wystąpienie-dopasowania: Opcjonalna liczba całkowita, określająca, które dopasowanie ma zostać zwrócone, jeśli istnieje wiele dopasowań. Akceptowane są liczby ujemne, pozwalają one na wsteczny dostęp do dopasowań, -1 oznacza ostatnie dopasowanie itd. Podanie wartości 0 powoduje zwrócenie tablicy wszystkich dopasowań. Pominięcie tej wartości powoduje zwrócenie pierwszego dopasowania.

wystąpienie-grupy-przechwytującej: Opcjonalna liczba całkowita, określająca, która grupa przechwytująca w dopasowaniu ma zostać zwrócona (jeśli wyrażenie regularne zawiera grupy przechwytujące). Wartości ujemne nie są dozwolone. Podanie wartości 0 powoduje zwrócenie tablicy wszystkich grup przechwytujących. Pominięcie tej wartości powoduje zwrócenie całego dopasowania.

Uwagi

  • Ciąg-wyrażenia-regularnego musi być zgodny ze standardem ICU.

Przykłady

Jeśli masz dane, które nie mieszczą się łatwo w wierszach i kolumnach arkusza kalkulacyjnego, możesz użyć funkcji REGEX.EXTRACT, aby je uprościć. Na przykład, struktura danych w poniższej tabeli sprawia, że ich ręczne rozdzielenie do wielu komórek w celu przejrzenia może być utrudnione.

A

1

Opinie użytkowników

2

Email: jturska@icloud.com Użytkownik: Julia Turska Data: 2021-05-17

3

Email: d_ryszka@icloud.com Użytkownik: Daniel Ryszka Data: 2021-06-02

Aby to naprawić, możesz dodać do tabeli kolejne kolumny o nazwie Użytkownik, Email, Opinia i Data, a następnie użyć funkcji REGEX.EXTRACT, aby znaleźć potrzebne dane i wpisać je w odpowiedniej komórce.

Na przykład możesz wprowadzić następującą formułę, aby otrzymać nazwę użytkownika:

Edytor formuł pokazujący formułę =REGEX.EXTRACT(A2;"(?<=Użytkownik: )(.*)(?= Data)".

W tej formule używane są następujące argumenty:

  • ciąg-źródłowy: A2, komórka zawierająca dane, w których chcesz znaleźć nazwę użytkownika.

  • ciąg-wyrażenia-regularnego: "(?<=Użytkownik: )(.*)(?= Data)", wyrażenie regularne, które szuka tekstu między ciągiem znaków „Użytkownik: ” oraz „ Data”.

Tę formułę można powtórzyć dla każdego wiersza danych, aby otrzymać nazwę użytkownika każdej z osób, które wypełniły ankietę, zmieniając ciąg-źródłowy w celu dopasowania pozostałych komórek zawierających opinie użytkowników.

Aby to naprawić, możesz dodać do tabeli kolejne kolumny o nazwie Użytkownik, Email, Opinia i Data, a następnie użyć funkcji REGEX.EXTRACT, aby znaleźć potrzebne dane i wpisać je w odpowiedniej komórce.

Na przykład możesz wprowadzić następującą formułę:

Edytor formuł pokazujący formułę =REGEX.EXTRACT(A2;"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")

W tej formule używane są następujące argumenty:

  • ciąg-źródłowy: A2, komórka zawierająca dane, w których chcesz znaleźć adres email.

  • ciąg-wyrażenia-regularnego: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", wyrażenie regularne, które szuka wzorca adresu email.

Reorganizowanie danych na podstawie listy podanej w argumencie wystąpienie-dopasowania

Czasami możesz mieć dane takie jak poniższa tabela (zatytułowana Dostawcy), która grupuje wartości w komórce:

Dostawca

Pozycja

A

Soczewica, Garbanzo, Lima

B

Jabłka, Pomarańcze, Cytryny

C

Komosa ryżowa, Ryż, Chia

Aby oddzielić wartości na podstawie sklepu i grupy towarów, możesz najpierw utworzyć nową tabelę, taką jak poniższa:

A

B

C

D

1

Klasa

A

B

C

2

1

3

2

4

3

Aby otrzymać produkt Soczewica, najwyżej ocenianą pozycję dla Dostawcy A, możesz użyć formuły podobnej do tej w komórce B2 nowej tabeli, aby zwrócić Soczewicę, najwyżej ocenioną pozycję dla Dostawcy A:

Edytor formuł pokazujący formułę =REGEX.EXTRACT(Dostawcy::B2;"\w+";WIERSZ(A2)-1).

W tej formule używane są następujące argumenty:

  • ciąg-źródłowy: Dostawcy::B2, komórka zawierająca dane, których szukasz. W tym przypadku chcesz przeszukać listę w tej komórce.

  • ciąg-wyrażenia-regularnego: "\w+", wyrażenie regularne, które wyszukuje słowo.

  • wystąpienie-dopasowania: WIERSZ(A2)-1. W tym przypadku znaleziono 3 dopasowania dla każdego użycia funkcji REGEX.EXTRACT, i możesz użyć innej funkcji, takiej jak ROW, aby ustawić określone dopasowanie. Funkcja WIERSZ(A2) zwraca numer wiersza zaznaczonej komórki (2), a -1 jest uwzględniane, aby w wyniku pominąć wiersz nagłówka. W przeciwnym razie wyrażenie w tym przykładzie zwróciłoby Garbanzo (drugie dopasowanie).

    Jeśli pominiesz zmienną wystąpienie-dopasowania, wynikiem dla każdego dostawcy jest zawsze pierwsze zwracane słowo (Soczewica dla Dostawcy A, Jabłka dla Dostawcy B itd.).

Powyższą formułę można łatwo zmodyfikować, jeśli chcesz uzupełnić tabelę o innych dostawców i inne produkty.

  • Aby otrzymać inne popularne produkty od jednego dostawcy, możesz zmodyfikować zmienną wystąpienie-dopasowania. Na przykład, aby otrzymać Garbanzo, kolejny najpopularniejszy produkt Dostawcy A, możesz zmienić odwołanie do komórki w zmiennej wystąpienie-dopasowania z A2 na A3

  • Aby otrzymać wartości dla innego dostawcy, możesz zmodyfikować zmienną ciąg-źródłowy. Na przykład, otrzymać Jabłka, kolejny najpopularniejszy produkt Dostawcy B, możesz zmienić odwołanie do komórki w zmiennej ciąg- źródłowy z B2 na B3

Dodatkowe przykłady

Niech komórka A1 zawiera „marina@example.com john@example.ca mike@example.de”.

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") zwraca „marina@example.com”.

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2) zwraca „john@example.ca”.

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; -1) zwraca „mikeexample.de”.

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 1; 1) zwraca „marina”.

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2; 2) zwraca „example.ca”.

Zobacz takżeREGEX
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Był pomocny?
Ograniczenie liczby znaków: 250
Maksymalna liczba znaków to 250.
Dziękujemy za komentarz.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.