Rumah >Java >javaTutorial >Bagaimana untuk Mendapatkan dan Susunan Padanan daripada Rentetan Menggunakan Ungkapan Biasa Java?

Bagaimana untuk Mendapatkan dan Susunan Padanan daripada Rentetan Menggunakan Ungkapan Biasa Java?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 11:59:12191semak imbas

How to Retrieve and Array of Matches from a String Using Java Regular Expressions?

Mendapatkan Padanan Menggunakan Ungkapan Biasa dalam Java

Mendapatkan tatasusunan padanan daripada rentetan yang diberikan menggunakan ungkapan biasa dalam Java melibatkan mencipta padanan dan berulang pada perlawanan.

Menggunakan a Matcher

Buat objek Matcher menggunakan kaedah kompilasi kelas Corak:

Matcher m = Pattern.compile("regex_expression").matcher(input_string);

Lelaran pada Padanan

Gunakan find kaedah Matcher untuk mengulangi padanan:

List<String> allMatches = new ArrayList<>();
while (m.find()) {
  allMatches.add(m.group());
}

Menukar kepada Array

Jika anda memerlukan tatasusunan padanan, gunakan kaedah toArray:

String[] matchesArray = allMatches.toArray(new String[0]);

Kaedah Dipertingkat dengan MatchResult (Java >= 9)

Dalam Java 9 dan ke atas, anda boleh menggunakan kaedah toMatchResult pada Matcher untuk buat objek MatchResult. Ini menyediakan kaedah untuk mencipta iterator malas untuk gelung yang cekap pada padanan:

for (MatchResult match : MatchResult.findAll(p, input)) {
  // Use match information without advancing iteration...
}

Sebagai contoh, kod ini menggunakan kaedah pembantu allMatches untuk mengulang pada perlawanan, mencetak kumpulan dan kedudukan mereka:

for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) {
  System.out.println(match.group() + " at " + match.start());
}

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan dan Susunan Padanan daripada Rentetan Menggunakan Ungkapan Biasa Java?. 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