Pengecekan ke Belakang
Pelajaran 21 dari 28 dalam kursus RegEx di Python di Coddy.
Lookbehind adalah assertion yang memungkinkan kamu mencocokkan sekelompok karakter hanya jika karakter tersebut didahului (positive lookbehind) atau tidak didahului (negative lookbehind) oleh pola tertentu. Seperti lookahead, lookbehind tidak mengonsumsi karakter dalam string.
- Positive Lookbehind
<strong>(?<=...)</strong>: Mencocokkan sekelompok karakter hanya jika karakter tersebut didahului oleh pola tertentu. - Negative Lookbehind
<strong>(?<!...)</strong>: Mencocokkan sekelompok karakter hanya jika karakter tersebut tidak didahului oleh pola tertentu.
import re
text = "1foo 2foo 3foo foo"
pattern_positive = r"(?<=\d)foo"
pattern_negative = r"(?<!\d)foo"
matches_positive = re.findall(pattern_positive, text)
matches_negative = re.findall(pattern_negative, text)
print("Matches with positive lookbehind:", matches_positive) # output: ['foo']
print("Matches with negative lookbehind:", matches_negative) # output: ['foo', 'foo', 'foo']Pada contoh di atas, pola (?<=\d)foo mencocokkan "foo" hanya jika didahului oleh digit, sedangkan pola (?<!\d)foo mencocokkan "foo" hanya jika tidak didahului oleh digit.
Tantangan
MudahTulis fungsi bernama find_words_preceded_by_numbers yang menerima string teks sebagai input dan mengembalikan list kata yang didahului oleh angka.
Coba sendiri
import re
def find_words_preceded_by_numbers(text):
# Tulis kodemu di siniSemua pelajaran di RegEx di Python
1Pengantar
Pengantar5Pengelompokan dan Pola Lanjutan
PengelompokanPenangkapanOperator PipeAlternasiPengecekan ke DepanPengecekan ke BelakangLatihan sendiri: Compiler Python online
Uji pola pada teksmu sendiri: Penguji Regex