Lompati ke konten utama
Modul 6 · Pelajaran 3 dari 423/32 dalam kursus~12 min
Pelajaran modul (3/4)

Lihat ke belakang: `(?<=...)` `(?<!...)`

Lihat ke belakang adalah cerminan dari pandangan ke depan: mereka terlihat sebelum posisi saat ini, masih lebarnya nol.

  • (?<=...) -- pandangan positif ke belakang: polanya harus mendahului.
  • (?<!...) -- tampilan negatif di belakang: pola TIDAK boleh mendahului.
Code
Pattern: (?<=\$)\d+
Sample:  Costo $100, sconto -25, totale $75.
                ^^^                  ^^

$ tidak ada dalam pertandingan, tetapi berfungsi sebagai kondisi: hanya digit didahului dengan pencocokan tanda dolar.

Pandangan negatif ke belakang

Code
Pattern: (?<!\w)\d+
Sample:  Codice abc123 e numero 456.
                              ^^^

(?<!\w) mengharuskan sebelum digit TIDAK ada karakter kata: abc123 dikecualikan (sebelum 123 ada c, \w), 456 cocok (sebelum ada spasi).

Perbedaan utama vs kelompok yang tidak menangkap

Code
\\$\\d+         matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+    matches "100":  the match contains ONLY the digits.

Jika Anda perlu mengekstrak nilai "bersih" tanpa awalan, lihat ke belakang adalah pilihan yang tepat.

Lihat di balik kompatibilitas dalam JavaScript

Positif (?<=...) dan negatif (?<!...) lihat ke belakang periksa apa yang mendahului posisi saat ini. Di JavaScript, mereka didukung mulai dari ES2018; di browser lama atau mesin Node.js lama, hal tersebut akan menyebabkan kesalahan kompilasi sintaksis.

Cobalah

Latihan#regex.m6.l3.e1
Upaya: 0Memuat…

Ekstrak hanya jumlah numerik (tanpa tanda $) dari harga di teks.

Memuat editor…
Tunjukkan petunjuk

Pindahkan \\$ ke dalam tampilan positif di belakang (?<=\\$): kondisi posisi, bukan bagian dari kecocokan.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#regex.m6.l3.e2
Upaya: 0Memuat…

Temukan setiap rangkaian digit TIDAK diawali dengan huruf atau digit (yaitu angka 'terisolasi', bukan bagian kode seperti `abc123`).

Memuat editor…
Tunjukkan petunjuk

Gunakan tampilan negatif di belakang (?<!\\w) untuk mengecualikan jika ada huruf atau angka sebelumnya.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#regex.m6.l3.e3
Upaya: 0Memuat…

Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.

Memuat editor…
Tunjukkan petunjuk

Pindahkan tanda minus - di dalam tampilan positif ke belakang (?<=-).

Solusi tersedia setelah 3 upaya