Regex match case tidak sensitif python

Mengembalikan Seri atau Indeks boolean berdasarkan apakah pola atau regex tertentu terkandung dalam string Seri atau Indeks

Parameter

menepuk. str

Urutan karakter atau ekspresi reguler

kasus. bool, default Benar

Jika True, peka huruf besar-kecil

bendera. int, default 0 (tanpa tanda)

Bendera untuk melewati modul re, mis. g. ulang. ABAIKAN KASUS

na. NaN bawaan

Isi nilai untuk nilai yang hilang

regex. bool, default Benar

Jika Benar, asumsikan tepukan adalah ekspresi reguler

Jika Salah, perlakukan pat sebagai string literal

Pengembalian

Seri atau Indeks nilai boolean

Serangkaian atau Indeks nilai boolean yang menunjukkan apakah pola yang diberikan terdapat dalam string setiap elemen Seri atau Indeks

Lihat juga

analog, tetapi lebih ketat, mengandalkan re. cocokkan, bukan re. Cari

Contoh

Mengembalikan Serangkaian boolean hanya menggunakan pola literal

>>> s1 = pd.Series(['Mouse', 'dog', 'house and parrot', '23', np.NaN])
>>> s1.str.contains('og', regex=False)
0    False
1     True
2    False
3    False
4      NaN
dtype: object

Mengembalikan Indeks boolean hanya menggunakan pola literal

>>> ind = pd.Index(['Mouse', 'dog', 'house and parrot', '23.0', np.NaN])
>>> ind.str.contains('23', regex=False)
Index([False, False, False, True, nan], dtype='object')
_

Menentukan sensitivitas huruf besar-kecil menggunakan huruf besar-kecil

>>> s1.str.contains('oG', case=True, regex=True)
0    False
1    False
2    False
3    False
4      NaN
dtype: object

Menentukan na menjadi False alih-alih NaN menggantikan nilai NaN dengan False. Jika Seri atau Indeks tidak mengandung nilai NaN, dtype yang dihasilkan akan menjadi bool, jika tidak, objek dtype

>>> s1.str.contains('og', na=False, regex=True)
0    False
1     True
2    False
3    False
4    False
dtype: bool

Mengembalikan 'rumah' dan 'burung beo' dalam string yang sama

>>> s1.str.contains('house|parrot', regex=True)
0    False
1    False
2     True
3    False
4      NaN
dtype: object
_

Mengabaikan sensitivitas huruf menggunakan flag dengan regex

>>> import re
>>> s1.str.contains('PARROT', flags=re.IGNORECASE, regex=True)
0    False
1    False
2     True
3    False
4      NaN
dtype: object

Mengembalikan digit apa pun menggunakan ekspresi reguler

>>> s1.str.contains('\d', regex=True)
0    False
1    False
2    False
3     True
4      NaN
dtype: object
_

Pastikan pat bukan pola literal saat regex disetel ke True. Perhatikan dalam contoh berikut ini orang mungkin hanya mengharapkan s2[1] dan s2[3] untuk mengembalikan True. Namun, '. 0 'sebagai regex cocok dengan karakter apa pun yang diikuti oleh 0

Bagaimana cara mengabaikan kasus

ABAIKAN KASUS. Tanda ini memungkinkan pencocokan Ekspresi Reguler yang tidak peka huruf besar-kecil dengan string yang diberikan i. e. ekspresi seperti [A-Z] akan cocok dengan huruf kecil juga. Secara umum, Ini diteruskan sebagai argumen opsional untuk re. menyusun().

Apakah kasus regex

Secara default, pencocokan pola peka huruf besar-kecil. Dengan melewati re. IGNORECASE ke fungsi kompilasi, kita dapat membuatnya tidak peka huruf besar-kecil

Bagaimana Anda menambahkan kasus

Jika Anda ingin hanya sebagian dari regex yang tidak peka huruf besar-kecil (seperti dugaan jawaban awal saya), maka Anda memiliki dua opsi. .
Gunakan pengubah mode (?i) dan [opsional] (?-i). (?i)G[a-b](?- i). *
Masukkan semua variasi (i. e. huruf kecil dan huruf besar) di regex - berguna jika pengubah mode tidak didukung. [gG][a-bA-B]. *

Apakah kasus pencocokan regex

Secara default, perbandingan string input dengan karakter literal apa pun dalam pola ekspresi reguler bersifat peka huruf besar-kecil , spasi putih dalam pola ekspresi reguler ditafsirkan sebagai white-literal .