Cara Mengekstrak Nilai daripada Rentetan Menggunakan Ungkapan Biasa dalam Java
Soalan:
Memandangkan satu siri rentetan yang distrukturkan sebagai "[beberapa teks] [beberapa nombor] [beberapa teks lagi]", bagaimanakah kita boleh mengekstrak "beberapa nombor" menggunakan kelas ekspresi biasa (regex) Java? Kami amat berminat dengan satu contoh "beberapa nombor", dan rentetan sumber adalah pendek.
Jawapan:
Untuk mencapai pengekstrakan, ikut langkah ini :
Buat Corak Objek:
Tentukan objek Corak menggunakan Pattern.compile(regex) dengan ungkapan biasa yang anda inginkan. Contohnya:
private static final Pattern p = Pattern.compile("^([a-zA-Z]+)([0-9]+)(.*)");
Buat Objek Pencocokan:
Semak padanan:
Ekstrak Nilai:
Contoh:
Matcher m = p.matcher("Testing123Testing"); if (m.find()) { System.out.println(m.group(2)); // prints 123 }
Pemurnian Regex:
Untuk mengekstrak nombor pertama, gunakan biasa berikut ungkapan:
^\D+(\d+).*
Ini sepadan dengan rentetan di mana aksara bukan digit diikuti oleh satu atau lebih digit dan aksara tambahan. m.group(1) akan mendapatkan semula nilai "some number".
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nombor daripada Rentetan di Java Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!