Pelajaran modul (3/4)
Negasi: `[^...]`
Menempatkan tanda sisipan ^ sebagai karakter pertama di dalam tanda kurung
membalikkan kelas: cocok dengan karakter apa pun kecuali yang tercantum.
Pattern: [^aeiou]
Sample: ciao mondo
^ ^^ ^[^aeiou] cocok dengan konsonan, spasi, tanda baca, angka\u2026 segala sesuatu yang
adalah bukan vokal.
Contoh tipikal
[^\s]-- karakter "bukan spasi" apa pun (setara dengan\S).[^0-9]-- segala sesuatu yang bukan angka (setara dengan\D).[^"]+-- "urutan karakter yang bukan tanda kutip ganda" (berguna untuk ekstrak konten di antara tanda kutip).
Pattern: "([^"]+)"
Sample: Il libro "Il nome della rosa" e' famoso.Grup ([^"]+) menangkap segala sesuatu di antara tanda kutip berhenti
sebelum " berikutnya: ini adalah trik klasik untuk menghindari
masalah serakah vs malas.
Negasi dan wildcard alternatif
Kelas yang dinegasikan [^...] menggunakan tepat satu karakter yang BUKAN bagian dari kumpulan yang terdaftar. Ini adalah alat yang ampuh untuk mencegah mesin berjalan melewati pembatas kritis, menghindari ReDoS yang disebabkan oleh loop backtracking yang tak terbatas.
Cobalah
Ekstrak konten setiap string di antara tanda kutip ganda, tanpa mengambil sendiri tanda kutipnya.
Tunjukkan petunjuk
Ganti .+ dengan [^"]+: dengan cara ini kecocokan berhenti pada kutipan berikutnya.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Temukan setiap kata HANYA terdiri dari konsonan (tanpa vokal, tanpa angka, tanpa simbol).
Tunjukkan petunjuk
Di dalam tanda kurung Anda dapat menggabungkan negasi vokal dengan \\W (bukan kata) dan \\d (digit).
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Cocokkan urutan satu karakter atau lebih, secara eksplisit tidak termasuk spasi dan koma.
Tunjukkan petunjuk
Gunakan [^\\s,] dengan + pembilang.
Solusi tersedia setelah 3 upaya