REGEX.EXTRACT

Funcția REGEX.EXTRACT returnează corespondențele sau grupurile de capturare dintr-o corespondență a unei anumite expresii regulate dintr-un șir sursă.

REGEX.EXTRACT(șir‑sursă; șir‑expresie‑regulată; apariție‑corespondență; apariție‑grup‑capturare)

șir-sursă: O valoare șir pentru care se face corelarea.

șir-expresie-regulată: O valoare șir ce reprezintă o expresie regulată, utilizată pentru a găsi corespondențe cu șirul-sursă.

apariție‑corespondență: O valoare întreagă opțională care arată care corespondență trebuie returnată în cazul în care există mai multe corespondențe. Valorile întregi negative sunt acceptate și permit accesarea corespondențelor în sens invers, prin urmare -1 este ultima corespondență etc. Dacă avem 0, este returnată o matrice a tuturor corespondențelor. Dacă se omite, prima corespondență este returnată.

apariție‑grup‑capturare: O valoare întreagă opțională care arată care grup de capturare dintr-o corespondență trebuie returnat în cazul în care există grupuri de capturare în expresia regulată. Valorile negative nu sunt acceptate. Dacă 0 este returnat, este returnată o matrice a tuturor grupurilor de capturare. Dacă se omite, întreaga corespondență este returnată.

Note

  • Șir-expresie-regulată trebuie să se conformeze cu standardul ICU.

Exemple

Dacă aveți date care nu se încadrează ușor în rândurile și coloanele unei foi de calcul, puteți utiliza funcția REGEX.EXTRACT pentru simplificare. De exemplu, în tabelul de mai jos, datele au o oarecare structură, dar pot fi greu de separat manual în mai multe celule per recenzie.

A

1

Recenzii utilizator

2

E-mail: jtalma@icloud.com Nume: Julie Talma Data: 17.05.2021

3

E-mail: danny_rico@icloud.com Nume: Danny Rico Data: 02.06.2021

Pentru a rezolva această problemă, puteți adăuga mai multe coloane la tabel pentru Nume, E-mail, Evaluare și Dată și apoi puteți utiliza REGEX.EXTRACT pentru a găsi datele pe care le doriți și a le returna în celulă.

De exemplu, ați putea introduce formula următoare pentru a returna un nume:

Editorul de formule afișând formula =REGEX.EXTRACT(A2;"(?<=Nume: )(.*)(?= Data)".

În această formulă sunt utilizate argumentele următoare:

  • șir-sursă: A2, celula care conține datele în care doriți să căutați un nume.

  • șir-expresie-regulată: "(?<=Nume: )(.*)(?= Date)", o expresie regulată care caută text între șirul "Nume: " și " Data".

Această formulă poate fi repetată pentru fiecare rând de date pentru a returna numele fiecărei persoane care a răspuns la sondaj modificând șirul-sursă pentru corespondența cu celelalte celule care conțin informații despre recenziile utilizatorilor.

Pentru a rezolva această problemă, puteți adăuga mai multe coloane la tabel pentru Nume, E-mail, Evaluare și Dată și apoi puteți utiliza REGEX.EXTRACT pentru a găsi datele pe care le doriți și a le returna în celulă.

De exemplu, ați putea introduce formula următoare:

Editorul de formule afișând formula =REGEX.EXTRACT(A2;"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2;4}")

În această formulă sunt utilizate argumentele următoare:

  • șir-sursă: A2, celula care conține datele în care doriți să căutați un e-mail.

  • șir-expresie-regulată: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2;4}", o expresie regulată care caută un model de adresă de e-mail.

Reorganizarea datelor dintr-o listă cu apariție-corespondență

Uneori puteți avea date ca tabelul de mai jos (intitulat Furnizori), care grupează valorile într-o celulă:

Furnizor

Articol

A

Linte, Năut, Fasole

B

Mere, Portocale, Lămâi

C

Quinoa, Orez, Chia

Pentru a separa valorile pe baza magazinului și a rangului, mai întâi puteți crea un tabel nou, asemenea celui de mai jos:

A

B

C

D

1

Rang

A

B

C

2

1

3

2

4

3

Pentru a returna Linte, articolul cel mai bine clasat pentru Furnizorul A, puteți utiliza o formulă ca aceasta în celula B2 a noului tabel:

Editorul de formule afișând formula =REGEX.EXTRACT(Furnizori::B2;"\w+";ROW(A2)-1).

În această formulă sunt utilizate argumentele următoare:

  • șir-sursă: Furnizori:: B2, celula care conține datele în care doriți să căutați. În acest caz, doriți să căutați lista în această celulă.

  • șir-expresie-regulată: "\w+", o expresie regulată care caută un cuvânt.

  • apariție‑corespondență: ROW(A2)-1. În acest caz, există 3 corespondențe pentru fiecare funcție REGEX.EXTRACT și puteți utiliza o altă funcție precum ROW pentru a configura corespondența specifică dorită. ROW(A2) returnează numărul de rând al celulei selectate (2) și -1 este inclus pentru a scădea rândul de antet din rezultat, altfel s-ar returna Năut (a doua corespondență) în acest exemplu.

    Dacă omiteți apariție‑corespondență, rezultatul pentru fiecare furnizor este întotdeauna primul cuvânt returnat (Linte pentru furnizorul A, Mere pentru furnizorul B și așa mai departe).

Formula de mai sus poate fi modificată cu ușurință pentru completarea tabelului pentru alți furnizori și alte articole.

  • Pentru a returna alte produse populare pentru un singur furnizor, puteți modifica argumentul apariție-corespondență. De exemplu, pentru a returna Năut, următorul articol ca popularitate pentru furnizorul A, puteți schimba referința de celulă din argumentul apariție‑corespondență din A2 în A3.

  • Pentru a returna valorile pentru un alt furnizor, puteți modifica argumentul șir-sursă. De exemplu, pentru a returna Mere, cel mai popular articol pentru furnizorul B, puteți schimba referința de celulă din argumentul șir-sursă din A2 în A3.

Exemple suplimentare

Fie A1 "marina@exemplu.com ion@exemplu.ca nelu@exemplu.de".

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

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; 2) returnează "ion@exemplu.ca".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; -1) returnează "neluexemplu.de".

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

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"; 2; 2) returnează "exemplu.ca".

A se vedea șiREGEX
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Util?
Limită de caractere: 250
Limita maximă de caractere este de 250.
Îți mulțumim pentru feedback.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.