Ekspresi reguler (regexp) adalah urutan karakter tertentu yang secara luas atau sempit cocok dengan pola di data Anda. Anda dapat menggunakan ekspresi reguler untuk membuat filter yang lebih fleksibel di diagram dan kontrol. Anda juga dapat menggunakan fungsi ekspresi reguler berikut di formula kolom kalkulasi:
REGEXP_CONTAINS |
Menampilkan nilai benar jika nilai input berisi pola ekspresi reguler, jika tidak, menampilkan nilai salah. Pelajari REGEXP_CONTAINS lebih lanjut. |
REGEXP_EXTRACT |
Menampilkan substring pertama yang cocok dalam nilai input yang cocok dengan pola ekspresi reguler. Pelajari REGEXP_EXTRACT lebih lanjut. |
REGEXP_MATCH |
Menampilkan nilai benar jika nilai input cocok dengan pola ekspresi reguler, jika tidak, menampilkan nilai salah. Pelajari REGEXP_MATCH lebih lanjut. |
EGEXP_REPLACE |
Mengganti semua kemunculan teks yang cocok dengan pola ekspresi reguler dalam nilai input dengan string penggantian. Pelajari EGEXP_REPLACE lebih lanjut. |
Alternatif untuk penggunaan ekspresi reguler
Membuat ekspresi reguler bisa menjadi proses yang rumit. Sebelum menggunakan fungsi ekspresi reguler, pertimbangkan apakah penggunaan fungsi teks yang lebih sederhana akan mencapai sasaran Anda. Fungsi berikut menyediakan fungsi seperti ekspresi reguler tanpa mengharuskan Anda mengetahui sintaksis regexp.
Fungsi | Deskripsi |
---|---|
CONTAINS_TEXT |
Menampilkan nilai benar jika teks yang ditentukan ditemukan dalam kolom atau ekspresi, jika tidak, menampilkan nilai salah. |
ENDS_WITH |
Menampilkan nilai benar jika kolom atau ekspresi diakhiri dengan teks yang ditentukan, jika tidak, menampilkan nilai salah. |
LEFT_TEXT |
Menampilkan jumlah karakter dari awal string yang ditentukan. |
REPLACE |
Menampilkan salinan teks asli dengan semua kemunculan teks penelusuran yang diganti dengan teks pengganti. |
RIGHT_TEXT |
Menampilkan jumlah karakter dari akhir string yang ditentukan. |
STARTS_WITH |
Menampilkan nilai benar jika kolom atau ekspresi diawali dengan teks yang ditentukan, jika tidak, menampilkan nilai salah. |
TRIM |
Menampilkan teks dengan menghapus spasi di depan dan di belakangnya. |
Contoh ekspresi reguler
Cocok jika MyField berisi karakter spasi:
REGEXP_CONTAINS(MyField, "\\s+")
Mengekstrak direktori tingkat atas di URL:
REGEXP_EXTRACT(URL,
^https://[^/]+/([^/]+)/
)
Misalnya, jika kolom URL
berisi alamat halaman ini, fungsi sebelumnya akan menampilkan looker-studio
.
Mengategorikan kampanye iklan menurut bahasa:
CASE
WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*en\s*\|.*") then "English"
WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*es\s*\|.*") then "Spanish"
ELSE "Other language"
END
Misalnya, menerapkan ekspresi reguler ini ke dimensi Kampanye di akun Demo Google Analytics akan memberikan hasil berikut:
Kampanye | Bahasa |
---|---|
Kampanye #1 | Bahasa lain |
1000549 | Demo Google Analytics | DR | apontes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) | Inggris |
1000549 | Demo Google Analytics | DR | apontes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) | Spanyol |
Menukar urutan bagian dalam string:
REGEXP_REPLACE(Campaign, R'(.*):(.*)', R'\2 \1')
Pada contoh sebelumnya, bagian dipisahkan dengan titik dua (:).
Karakter meta
Karakter meta adalah karakter yang memiliki makna khusus dalam ekspresi reguler. Berikut adalah beberapa karakter meta yang lebih umum yang dapat Anda gunakan. Perhatikan bahwa contoh ini akan terbuka di Pusat Bantuan Google Analytics, tetapi informasi yang tercantum di sana juga berlaku untuk Looker Studio.
Karakter pengganti
. | Mencocokkan satu karakter apa pun (huruf, angka, atau simbol). | 1. cocok dengan 10, 1A 1.1 cocok dengan 111, 1A1 Contoh |
? | Cocok dengan karakter sebelumnya 0 atau 1 kali. | 10? cocok dengan 1, 10 Contoh |
+ | Cocok dengan karakter sebelumnya 1 atau beberapa kali. | 10+ cocok dengan 10, 100 Contoh |
* | Cocok dengan karakter sebelumnya 0 atau beberapa kali. | 1* cocok dengan 1, 10 Contoh |
| | Membuat pencocokan OR. Jangan gunakan di akhir ekspresi. |
1|10 cocok dengan 1, 10 Contoh |
Penanda
^ | Cocok dengan karakter yang bersebelahan di awal string. | ^10 cocok dengan 10 , 10 0, 10 x ^10 tidak cocok dengan 1 10 , 1 10 x Contoh |
$ | Mencocokkan karakter yang bersebelahan di akhir string. | 10$ cocok dengan 1 10 , 10 10 10$ tidak cocok dengan 10 0, 10 x Contoh |
Grup
( ) | Mencocokkan karakter dalam tanda kurung dengan urutan yang sama persis di mana pun pada string. Juga digunakan untuk mengelompokkan ekspresi lainnya. |
(10) cocok dengan 10 , 10 1, 10 11 ([0-9]|[a-z]) cocok dengan angka atau huruf kecil apa pun Contoh |
[ ] | Mencocokkan karakter dalam tanda kurung dengan urutan apa pun di mana pun pada string. | [10] cocok dengan 01 2, 1 20, 2 10 Contoh |
- | Membuat rentang karakter dalam tanda kurung untuk dicocokkan di posisi mana pun dalam string. | [0-9] cocok dengan semua angka dari 0 sampai 9 Contoh |
Escape
\\ | Menunjukkan bahwa karakter yang bersebelahan harus ditafsirkan secara harfiah dan bukan sebagai karakter meta ekspresi reguler. |
\\ menunjukkan bahwa titik yang bersebelahan harus ditafsirkan sebagai titik atau desimal, bukan sebagai karakter pengganti 216\\.239\\.32\\.34 cocok dengan 216.239.32.34 Contoh |
Class karakter
\d | digit (≡ [0-9]) |
\D | bukan digit (≡ [^0-9]) |
\s | spasi kosong (≡ [\t\n\f\r ]) |
\S | bukan spasi kosong (≡ [^\t\n\f\r ]) |
\w | karakter kata (≡ [0-9A-Za-z_]) |
\W | bukan karakter kata (≡ [^0-9A-Za-z_]) |
Tips
Menggunakan ekspresi sederhana
Buat ekspresi reguler Anda tetap sederhana. Ekspresi yang sederhana akan lebih mudah diinterpretasikan dan diubah oleh pengguna lain.
Kepekaan huruf besar/kecil
Ekspresi reguler peka huruf besar/kecil secara default. Anda dapat membuat kecocokan tidak peka huruf besar-kecil menggunakan flag (?i)
. Misalnya, ekspresi ini mengekstrak "abc123" dan "ABC123":
REGEXP_EXTRACT(MyField, '(?i)(a.*)')
Meng-escape garis miring terbalik
Seperti yang telah disebutkan sebelumnya, Anda menggunakan garis miring terbalik (\) untuk meng-escape karakter meta ekspresi reguler jika karakter tersebut harus diinterpretasikan secara harfiah. Untuk mencocokkan garis miring terbalik dalam string yang diberi tanda kutip, Anda juga perlu meng-escape karakter tersebut agar menghasilkan dua garis miring terbalik di ekspresi. Contoh:
REGEXP_REPLACE(String, "(\\[.*\\])\\+(\\[.*\\])","\\2 \\1")
Sebagai alternatif, pertimbangkan untuk menggunakan awalan literal string mentah (Raw), R:
REGEXP_REPLACE(String, R"(\[.*\])\+(\[.*\])",R"\2 \1")