Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengekstrak Teks Selepas Padanan Regex Menggunakan Penegasan Lookbehind?

Bagaimana untuk Mengekstrak Teks Selepas Padanan Regex Menggunakan Penegasan Lookbehind?

Linda Hamilton
Linda Hamiltonasal
2024-11-08 11:31:02354semak imbas

How to Extract Text After a Regex Match Using Lookbehind Assertions?

Mendapatkan semula Teks selepas Regex Match

Dalam usaha anda untuk menggunakan Regex dengan berkesan, anda telah menghadapi cabaran: mengekstrak teks mengikut corak yang dipadankan . Mari kita mendalami penyelesaiannya.

Corak Regex asal anda, "ayat(.*)", hampir mencapai matlamat anda. Walau bagaimanapun, ia secara sewenang-wenangnya menangkap kedua-dua rentetan yang dipadankan ("ayat") dan teks seterusnya. Untuk meminda perkara ini, kita perlu memperkenalkan konsep yang dikenali sebagai "penegasan pandang belakang".

Menggunakan Penegasan Pandang Belakang

Penegasan pandangan di belakang yang positif (?<=. ..) sepadan dengan kedudukan tertentu dalam rentetan, sejurus selepas ungkapan yang diberikan. Dalam kes ini, kami mahu memadankan kedudukan sejurus selepas rentetan "ayat":

(?<=sentence).*

Corak ini dibaca sebagai "Padankan sifar atau lebih aksara selepas kedudukan yang 'ayat' serta-merta mendahuluinya." Oleh itu, ia berjaya mengekstrak teks yang diingini.

Melaksanakan dalam Java

Untuk melaksanakan ini dalam Java, anda boleh mengubah suai kod anda seperti berikut:

Pattern pattern = Pattern.compile("(?<=sentence).*");

Matcher matcher = pattern.matcher("some lame sentence that is awesome");

boolean found = false;
while (matcher.find()) {
    System.out.println("I found the text: " + matcher.group().toString());
    found = true;
}
if (!found) {
    System.out.println("I didn't find the text");
}

Kini, apabila Regex digunakan pada rentetan input, ia hanya akan memadankan dan mencetak teks berikut "ayat":

I found the text: that is awesome

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Teks Selepas Padanan Regex Menggunakan Penegasan Lookbehind?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn