Saya mencari ekspresi regex untuk mencocokkan beberapa baris pada baris yang cocok. Sebagai contoh:
ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX
Saya ingin menangkap 2 baris di atas XXXXXXXX.
Bantuan apa pun akan dihargai. Catatan: dengan Python menggunakan library re
Jawaban:
RegEx berikut menguji jumlah variabel garis sebelum
XXXXXXXX
garis dan mengembalikannya dalam kelompok tangkapan pertama.((.*\n){2})XXXXXXXX
(.*\n)
tes untuk string yang diakhiri dengan\n
, baris baru.{2}
menghitung ini 2 kali.()
sekitar itu memastikan semua garis datang dalam satu kelompok tangkap.XXXXXXXX
adalah string yang harus diakhiri dengan teks.Sekarang dengan Python, Anda dapat menggunakan
p.match(regex)[0]
untuk mengembalikan grup tangkapan pertama.sumber
\r\n
bukan hanya\n
.XXXXXXXX
(tetapi tidak harus diakhiri denganXXXXXXXX
).Menambah jawaban erikgaal, gunakan tambahan. * Sebelum xxxxxx, untuk mencocokkan tab / spasi putih.
((. * \ n) {2}). * xxxxxxx
sumber
.*
tidak akan cocok hanya tab / spasi; itu akan cocok dengan apa pun (misalnya, "XXXXXXX cokelat cepat").