Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengekstrak Teks Mengikuti Padanan Regex Tanpa Menyertakan Teks Padanan?
Mencari Teks Mengikuti Padanan Regex
Anda telah menceburi bidang Regex dan menghadapi keperluan khusus: mengekstrak teks yang berjaya perlawanan tertentu tanpa memasukkan perlawanan itu sendiri. Mari kita terokai cara ini boleh dicapai.
Dalam kod yang anda berikan, corak awal "ayat(.*)" tepat padan dengan "ayat", tetapi ia juga menangkap teks berikut, menghasilkan "ayat yang hebat ." Untuk mengasingkan hanya teks berikutnya, kami akan menggunakan teknik yang dipanggil "pandangan positif di sebalik penegasan."
Pandangan Positif di Sebalik Penegasan
Pandangan positif di sebalik penegasan (?<= ayat) sepadan dengan lokasi dalam rentetan sejurus selepas teks yang ditentukan ("ayat") tanpa memasukkannya ke dalam padanan. Dengan menggunakan pernyataan ini, kami boleh mencipta corak baharu:
(?<=sentence).*
Pelaksanaan Java
Untuk melaksanakan ini dalam Java, ubah suai kod anda seperti berikut:
import java.util.regex.*; public class RegexPostMatch { public static void main(String[] args) { String example = "Some lame sentence that is awesome"; Pattern pattern = Pattern.compile("(?<=sentence).*"); Matcher matcher = pattern.matcher(example); if (matcher.find()) { System.out.println("Text after 'sentence': " + matcher.group()); } else { System.out.println("No match found"); } } }
Kod yang disemak ini akan mengeluarkan hasil yang diingini: "itu hebat."
Nota Tambahan
Di Jawa, pandangan positif di belakang pernyataan terhad kepada subungkapan panjang terhingga. Ini bermakna corak seperti "(?<=ayat*)" tidak akan berfungsi. Sebaliknya, pertimbangkan untuk menggunakan alternatif seperti:
(?<=sentence\s+|\W+sentence)
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Teks Mengikuti Padanan Regex Tanpa Menyertakan Teks Padanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!