Bagaimana cara memeriksa apakah suatu string mengandung substring tertentu, menggunakan Perl?
Lebih khusus lagi, saya ingin melihat apakah s1.domain.com
ada dalam variabel string yang diberikan.
string
perl
string-matching
Ikan Belgin
sumber
sumber
:
).Kemungkinan lain adalah menggunakan ekspresi reguler yang merupakan hal terkenal dari Perl:
Garis miring terbalik diperlukan karena
.
dapat mencocokkan karakter apa pun. Anda dapat menyiasatinya dengan menggunakan operator\Q
dan\E
.Atau, Anda bisa lakukan sebagai eugene y dinyatakan dan menggunakan indeks fungsi. Hanya kata peringatan: Indeks mengembalikan
-1
ketika tidak dapat menemukan kecocokan alih-alihundef
atau0
.Jadi, ini adalah kesalahan:
Ini akan salah jika
s1.domain.com
di awal string Anda. Saya pribadi telah dibakar dalam hal ini lebih dari sekali.sumber
index()
lebih cepat dari regexps dalam kasus sederhana?=~
,index()
,~~
danmatch::simple
semua tampak sedikitawk
-ward ...: - \domain.com
mencocokkansubdomain.domain.com
menggunakan REGEX di atas, ada ide?Contoh Substring Tidak Peka Huruf Besar / Kecil
Ini adalah perpanjangan dari jawaban Eugene, yang mengubah string menjadi huruf kecil sebelum memeriksa substring:
sumber
fc
direkomendasikanlc
untuk perbandingan tidak peka huruf besar / kecil.