Saya memiliki ekspresi reguler seperti ini:
regexp = u'ba[r|z|d]'
Fungsi harus mengembalikan True jika kata berisi bilah , baz , atau buruk . Singkatnya, saya membutuhkan analog regexp untuk Python
'any-string' in 'text'
Bagaimana saya bisa menyadarinya? Terima kasih!
bool(re.search('ba[rzd]', 'sometext'))
.Jawaban:
sumber
xyz
) dan ingin tahu cara mana yang lebih efisien untuk melakukan ini, haruskah saya menggunakan python'xyz' in given_text
atau menggunakanre.compile(r'xyz').search(given_text)
?[]
kurung mengandung kelas karakter, sehingga kembali Anda juga cocok: >>> kata = 'ba |'; regexp.search (kata) <_sre.SRE_Match objek di 0x101030b28>. Anda dapat menjatuhkan semua simbol pipa.Yang terbaik sejauh ini adalah
Mengembalikan True
sumber
bool
. OP: "harus dikembalikanTrue
jika kata mengandung bar, baz atau bad." Jawaban lain menggunakan perilakuif
- mengubah ekspresi secara otomatis ke kanan menjadi abool
. misalnyaimport re; rgx=re.compile(r'ba[rzd]'); rgx.search('foobar')
=><re.Match object; span=(2, 5), match='bar'>
, tetapiif(rgx.search(w)): print('y')
=>y
. Paling dekat dengan dokumentasi konversi otomatis yang dapat saya temukan ( diarsipkan )Match
objek selalu benar, danNone
dikembalikan jika tidak ada kecocokan. Uji saja kebenarannya.Kode:
Keluaran =
bar
Jika Anda menginginkan
search
fungsionalitasdan jika
regexp
tidak ditemukan dariSeperti yang disebutkan @bukzor jika st =
foo bar
than match tidak akan berfungsi. Jadi, lebih tepat digunakanre.search
.sumber
search
daripadamatch
. (Lihat docs.python.org/library/re.html#matching-vs-searching. ) Selain itu, menurut saya akan membantu jika Anda menunjukkan kemungkinan argumen yang sebenarnya, dalam urutan yang benar, bukan hanya...
.st
ke"foo bar"
, metode pencocokan tidak akan berfungsi di sini. Anda ingin mencari.in
danregex
?Inilah fungsi yang melakukan apa yang Anda inginkan:
Metode pencarian ekspresi reguler mengembalikan objek pada keberhasilan dan Tidak ada jika pola tidak ditemukan dalam string. Dengan pemikiran tersebut, kami mengembalikan True selama pencarian memberikan sesuatu kepada kami.
Contoh:
sumber
Anda bisa melakukan sesuatu seperti ini:
Menggunakan pencarian akan mengembalikan objek SRE_match, jika cocok dengan string pencarian Anda.
Jika tidak, itu akan mengembalikan Tidak Ada
Dan hanya untuk mencetaknya untuk mendemonstrasikan lagi:
sumber