Contoh berikut mengilustrasikan penggunaan dan konstruksi ekspresi reguler sederhana. Setiap contoh menyertakan jenis teks yang akan dicocokkan, satu atau beberapa ekspresi reguler yang cocok dengan teks tersebut, dan catatan yang menjelaskan penggunaan karakter dan pemformatan khusus
Untuk instruksi dan panduan tambahan, lihat juga Panduan untuk menggunakan ekspresi reguler dan Sintaks RE2. Lihat juga Menyiapkan aturan untuk kepatuhan konten
Penting. Kami hanya mendukung Sintaks RE2, yang sedikit berbeda dari PCRE. Ekspresi reguler peka huruf besar-kecil secara default
Catatan. Contoh yang ditampilkan di bawah dapat berguna sebagai titik awal untuk ekspresi reguler yang lebih kompleks. Namun, untuk mencocokkan satu kata, sebaiknya gunakan setelan Kesesuaian konten atau Konten yang tidak pantas
Cocokkan Hanya Frasa TepatContoh PenggunaanCocokkan tips stok frasa. Contoh regex Contoh 1. [\W. ^]stok\stips[\W. $]Contoh 2. [\W. ^]stok\s{0,3}tips[\W. $]
Contoh 3. [\W. ^]stok\s{0,3}tips{0,1}[\W. $] Catatan
- \W cocok dengan karakter apa pun yang bukan huruf, angka, atau garis bawah. Ini mencegah regex mencocokkan karakter sebelum atau sesudah frase
- Dalam contoh 2, \s cocok dengan karakter spasi, dan {0,3} menunjukkan bahwa dari 0 hingga 3 spasi dapat muncul antara kata stock dan tip
- ^ cocok dengan awal baris baru. Mengizinkan regex mencocokkan frasa jika muncul di awal baris, tanpa karakter sebelumnya
- $ cocok dengan akhir baris. Mengizinkan regex mencocokkan kata jika muncul di akhir baris, tanpa karakter setelahnya
Tutorial ekspresi reguler Python menunjukkan cara menggunakan ekspresi reguler di Python. Untuk ekspresi reguler di Python, kami menggunakan modul re
Ekspresi reguler digunakan untuk pencarian teks dan manipulasi teks yang lebih canggih. Ekspresi reguler adalah alat bawaan seperti grep, sed, editor teks seperti vi, emacs, bahasa pemrograman seperti Tcl, Perl, dan Python
Dalam Python, modul
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
5 menyediakan operasi pencocokan ekspresi regulerPola adalah ekspresi reguler yang mendefinisikan teks yang kita cari atau manipulasi. Ini terdiri dari teks literal dan metakarakter. Pola ini dikompilasi dengan fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
6. Karena ekspresi reguler sering menyertakan karakter khusus, disarankan untuk menggunakan string mentah. [Raw string didahului dengan r karakter. ] Dengan cara ini karakter tidak ditafsirkan sebelum dikompilasi menjadi suatu polaSetelah kita menyusun pola, kita dapat menggunakan salah satu fungsi untuk menerapkan pola pada string teks. Fungsinya meliputi ________ 0________7,
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
8,$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
9, dan#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
0Ekspresi reguler
Tabel berikut menunjukkan beberapa ekspresi reguler dasar
RegexArtinya#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
1Cocok dengan karakter tunggal apa pun.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
2Cocok dengan elemen sebelumnya sekali atau tidak sama sekali.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
3Cocok dengan elemen sebelumnya sekali atau beberapa kali.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
4Cocok dengan elemen sebelumnya nol kali atau lebih.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
5Cocok dengan posisi awal dalam string.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
6Cocok dengan posisi akhir dalam string.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
7Operator alternatif.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
8Cocok dengan a atau b, atau c.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
9Rentang; .$ ./fullmatch_fun.py The book matches
0Negasi, cocok dengan semua kecuali a, atau b, atau c.$ ./fullmatch_fun.py The book matches
1Cocok dengan karakter spasi putih.$ ./fullmatch_fun.py The book matches
2Cocok dengan karakter kata;Kami mencari kecocokan dengan fungsi regex
FunctionDescription$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
_7Menentukan apakah RE cocok dengan awal string.$ ./fullmatch_fun.py The book matches
5Menentukan apakah RE cocok dengan seluruh string.$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
8Memindai melalui string, mencari lokasi mana pun di mana RE ini cocok.$ ./fullmatch_fun.py The book matches
7Menemukan semua substring di mana RE cocok, dan mengembalikannya sebagai daftar.#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
0Menemukan semua substring di mana RE cocok, dan mengembalikannya sebagai iterator.$ ./fullmatch_fun.py The book matches
9Membagi string dengan pola REFungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
7,$ ./fullmatch_fun.py The book matches
5, dan$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
8 mengembalikan objek yang cocok jika berhasil. Jika tidak, mereka mengembalikan#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.search[pattern, word]: print[f'The {word} matches']
3Fungsi pertandingan
Fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
7 mengembalikan objek yang cocok jika nol atau lebih karakter di awal string cocok dengan pola ekspresi reguler#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
Dalam contoh, kami memiliki tupel kata. Pola yang dikompilasi akan mencari string 'buku' di setiap kata
pattern = re.compile[r'book']
Dengan fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
_6, kita membuat pola. Ekspresi reguler adalah string mentah dan terdiri dari empat karakter normalfor word in words: if re.match[pattern, word]: print[f'The {word} matches']
Kami menelusuri tuple dan memanggil fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
7. Itu menerapkan pola pada kata. Fungsi$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
7 mengembalikan objek kecocokan jika ada kecocokan di awal string. Ini mengembalikan#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.search[pattern, word]: print[f'The {word} matches']
_3 jika tidak ada kecocokan$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
Empat kata dalam tupel cocok dengan polanya. Perhatikan bahwa kata-kata yang tidak dimulai dengan istilah 'buku' tidak cocok. Untuk memasukkan juga kata-kata ini, kami menggunakan fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
8Fungsi
$ ./fullmatch_fun.py The book matches
_5 terlihat sama persis#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
Dalam contoh, kami menggunakan fungsi
$ ./fullmatch_fun.py The book matches
_5 untuk mencari istilah 'buku' yang tepat$ ./fullmatch_fun.py The book matches
Hanya ada satu pertandingan
Fungsi pencarian
Fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
8 mencari lokasi pertama tempat pola ekspresi reguler menghasilkan kecocokan#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.search[pattern, word]: print[f'The {word} matches']
Dalam contoh, kami menggunakan fungsi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
_8 untuk mencari istilah 'buku'$ ./search_fun.py The book matches The bookworm matches The bookish matches The cookbook matches The bookstore matches The pocketbook matches
Kali ini kata-kata buku masak dan buku saku disertakan juga
Titik [. ] metacharacter singkatan dari setiap karakter tunggal dalam teks
#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
Dalam contoh, kami memiliki tuple dengan delapan kata. Kami menerapkan pola yang berisi karakter meta titik pada setiap kata
pattern = re.compile[r'.even']
Titik mewakili karakter tunggal apa pun dalam teks. Karakter harus hadir
pattern = re.compile[r'book']
0Dua kata cocok dengan polanya. tujuh dan balas dendam
Karakter meta tanda tanya
Karakter meta tanda tanya [?] adalah quantifier yang cocok dengan elemen sebelumnya nol atau satu kali
pattern = re.compile[r'book']
1Dalam contoh, kami menambahkan tanda tanya setelah karakter titik. Ini berarti bahwa dalam pola kita dapat memiliki satu karakter arbitrer atau kita tidak dapat memiliki karakter di sana
pattern = re.compile[r'book']
2Kali ini, selain tujuh dan balas dendam, kata genap dan acara juga cocok
Jangkar mencocokkan posisi karakter di dalam teks tertentu. Saat menggunakan jangkar ^ kecocokan harus terjadi di awal string dan saat menggunakan jangkar $ kecocokan harus terjadi di akhir string
pattern = re.compile[r'book']
3Dalam contoh, kami memiliki tiga kalimat. Pola pencariannya adalah
$ ./search_fun.py The book matches The bookworm matches The bookish matches The cookbook matches The bookstore matches The pocketbook matches
4. Pola memeriksa apakah string "Jane" terletak di awal teks.$ ./search_fun.py The book matches The bookworm matches The bookish matches The cookbook matches The bookstore matches The pocketbook matches
_5 akan mencari "Jane" di akhir kalimatPencocokan persis dapat dilakukan dengan fungsi
$ ./fullmatch_fun.py The book matches
_5 atau dengan menempatkan istilah di antara jangkar. ^ dan $pattern = re.compile[r'book']
4Dalam contoh, kami mencari pencocokan tepat untuk istilah 'buku'
pattern = re.compile[r'book']
5Kelas karakter mendefinisikan sekumpulan karakter, salah satunya dapat terjadi dalam string input agar pertandingan berhasil
pattern = re.compile[r'book']
6Dalam contoh, kami menggunakan kelas karakter untuk menyertakan kata abu-abu dan abu-abu
pattern = re.compile[r'book']
7Kelas ________ 46 _______ 7 memungkinkan untuk menggunakan karakter 'e' atau 'a' dalam pola
Ada beberapa kelas karakter yang telah ditentukan.
$ ./fullmatch_fun.py The book matches
_1 cocok dengan karakter spasi$ ./search_fun.py The book matches The bookworm matches The bookish matches The cookbook matches The bookstore matches The pocketbook matches
9,#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
0 karakter#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
1, dan$ ./fullmatch_fun.py The book matches
2 karakter kata#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
3pattern = re.compile[r'book']
8Dalam contoh, kami menghitung angka dalam teks
pattern = re.compile[r'book']
_9Pola
#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_4 mencari sejumlah set digit dalam teksfor word in words: if re.match[pattern, word]: print[f'The {word} matches']
0Dengan metode
$ ./fullmatch_fun.py The book matches
_7, kita mencari semua angka dalam teksfor word in words: if re.match[pattern, word]: print[f'The {word} matches']
_1Pencocokan tidak peka huruf besar/kecil
Secara default, pencocokan pola peka huruf besar-kecil. Dengan meneruskan fungsi
#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
6 ke fungsi$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
6, kita dapat membuatnya tidak peka huruf besar/kecilfor word in words: if re.match[pattern, word]: print[f'The {word} matches']
_2Dalam contoh, kami menerapkan pola pada kata terlepas dari kasusnya
for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_3Keempat kata tersebut cocok dengan polanya
Operator pergantian. membuat ekspresi reguler dengan beberapa pilihan
for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_4Kami memiliki delapan nama dalam daftar
for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_5Ekspresi reguler ini mencari string "Jane", "Beky", atau "Robert".
Fungsi pencari
Fungsi
#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
0 mengembalikan iterator yang menghasilkan objek yang cocok dengan semua kecocokan yang tidak tumpang tindih untuk pola dalam sebuah stringfor word in words: if re.match[pattern, word]: print[f'The {word} matches']
_6Dalam contoh, kami mencari istilah 'rubah' dalam teks. Kami memeriksa iterator dari kecocokan yang ditemukan dan mencetaknya dengan indeksnya
for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_7Fungsi
#!/usr/bin/python import re words = ['seven', 'even', 'prevent', 'revenge', 'maven', 'eleven', 'amen', 'event'] pattern = re.compile[r'.even'] for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_9 danpattern = re.compile[r'.even']
0 masing-masing mengembalikan indeks awal dan akhirfor word in words: if re.match[pattern, word]: print[f'The {word} matches']
_8Menangkap grup adalah cara untuk memperlakukan banyak karakter sebagai satu kesatuan. Mereka dibuat dengan menempatkan karakter di dalam satu set kurung bulat. Misalnya, [buku] adalah grup tunggal yang berisi 'b', 'o', 'o', 'k', karakter
Teknik capture groups memungkinkan kita untuk mengetahui bagian-bagian string yang cocok dengan pola reguler
for word in words: if re.match[pattern, word]: print[f'The {word} matches']
_9Contoh kode mencetak semua tag HTML dari string yang disediakan dengan menangkap sekelompok karakter
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
0Untuk menemukan semua tag, kami menggunakan metode
$ ./fullmatch_fun.py The book matches
7$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
_1Kami telah menemukan empat tag HTML
Dalam contoh berikut, kami membuat pola regex untuk memeriksa alamat email
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
_2Contoh ini memberikan satu kemungkinan solusi
$ ./match_fun.py The book matches The bookworm matches The bookish matches The bookstore matches
_3#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
_5 pertama dan#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
6 karakter terakhir memberikan pencocokan pola yang tepat. Tidak ada karakter sebelum dan sesudah pola yang diperbolehkan. Email tersebut dibagi menjadi lima bagian. Bagian pertama adalah bagian lokal. Ini biasanya nama perusahaan, individu, atau nama panggilan.pattern = re.compile[r'.even']
_4 mencantumkan semua kemungkinan karakter, yang dapat kita gunakan di bagian lokal. Mereka dapat digunakan satu kali atau lebihBagian kedua terdiri dari karakter
pattern = re.compile[r'.even']
5 literal. Bagian ketiga adalah bagian domain. Biasanya nama domain dari penyedia email seperti Yahoo, atau Gmail.pattern = re.compile[r'.even']
_6 adalah kelas karakter yang menyediakan semua karakter yang dapat digunakan dalam nama domain. The#!/usr/bin/python import re words = ['book', 'bookworm', 'Bible', 'bookish','cookbook', 'bookstore', 'pocketbook'] pattern = re.compile[r'book'] for word in words: if re.fullmatch[pattern, word]: print[f'The {word} matches']
_3 quantifier memungkinkan untuk menggunakan satu atau lebih dari karakter iniBagian keempat adalah karakter titik. Diawali dengan karakter escape [\] untuk mendapatkan titik literal
Bagian terakhir adalah domain tingkat atas.
pattern = re.compile[r'.even']
_8. Domain tingkat atas dapat memiliki 2 hingga 18 karakter, seperti sk, net, info, travel, cleaning, travelinsurance. Panjang maksimum bisa 63 karakter, tetapi sebagian besar domain lebih pendek dari 18 karakter saat ini. Ada juga karakter titik. Ini karena beberapa domain tingkat atas memiliki dua bagian; . inggrisBagaimana Anda mencocokkan banyak kata di regex?
Namun, untuk mengenali banyak kata dalam urutan apa pun menggunakan regex, saya menyarankan penggunaan quantifier di regex. [\b[james. dongkrak]\b. *]{2,} . Tidak seperti lookaround atau pengubah mode, ini berfungsi di sebagian besar rasa regex.Bagaimana Anda mencocokkan kata dalam daftar dengan python?
Pendekatan. Pertama, buat objek ekspresi reguler [regex] yang cocok dengan kata yang mengandung 'g' diikuti oleh satu atau lebih e, lalu berikan string dalam metode findall. This method returns the list of the matched strings. Loop through the list and print each matched word.Bagaimana Anda mencocokkan kata di python regex?
Langkah-Langkah Pencocokan Ekspresi Reguler .Impor modul regex dengan import reBuat objek Regex dengan re. kompilasi[] fungsi. .Berikan string yang ingin Anda cari ke dalam metode search[] objek Regex. .Panggil metode group[] objek Match untuk mengembalikan string teks yang benar-benar cocokBagaimana Anda mencocokkan huruf di regex?
Untuk mencocokkan karakter yang memiliki arti khusus dalam regex, Anda perlu menggunakan awalan escape sequence dengan garis miring terbalik [ \ ] . e. g. , \. cocok". " ; regex \+ cocok dengan "+" ; dan regex \[ cocok dengan "[". Anda juga perlu menggunakan regex \\ untuk mencocokkan "\" [back-slash].