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: 17.05.2021 |
3 | Email: d_ryszka@icloud.com Użytkownik: Daniel Ryszka Data: 02.06.2021 |
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: W tej formule używane są następujące argumenty:
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łę: W tej formule używane są następujące argumenty:
|
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: W tej formule używane są następujące argumenty:
|
Powyższą formułę można łatwo zmodyfikować, jeśli chcesz uzupełnić tabelę o innych dostawców i inne produkty.
|
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”. |