Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memisahkan Rentetan Memelihara Pembatas Menggunakan Ungkapan Biasa?

Bagaimana untuk Memisahkan Rentetan Memelihara Pembatas Menggunakan Ungkapan Biasa?

Susan Sarandon
Susan Sarandonasal
2024-10-24 15:59:01848semak imbas

How to Split Strings Preserving Delimiters Using Regular Expressions?

Memisahkan Rentetan dengan Pembatas Dipelihara

Apabila bekerja dengan rentetan yang mengandungi berbilang pembatas, menjadi penting untuk memisahkan rentetan kepada bahagian konstituennya semasa mengekalkan maklumat pembatas. Kaedah String.split() menyediakan mekanisme mudah untuk membelah rentetan, tetapi ia hanya mengekstrak subrentetan tanpa mengekalkan pembatas.

Untuk mencapai hasil yang diingini bagi membelah rentetan dan mengekalkan pembatas, seseorang boleh menggunakan biasa ungkapan dengan pandangan ke hadapan dan pandangan di belakang. Lookahead (?=) dan look behind (?<=) ialah sintaks khas yang membenarkan pemadanan tanpa menggunakan sebarang aksara daripada rentetan input.

Pertimbangkan contoh berikut:

<code class="java">String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";

String[] parts = input.split("((?=;)|(?<=;))");</code>

Dalam ini kod:

  • Ungkapan biasa (?=;) sepadan dengan kedudukan tepat sebelum koma bertitik (;).
  • Ungkapan biasa (?<=;) sepadan dengan kedudukan hanya selepas koma bertitik (;).
  • The | operator menentukan bahawa padanan boleh berlaku untuk sama ada (?=;) atau (?<=;).
  • Kurungan paling luar melampirkan keseluruhan ungkapan dan berfungsi sebagai kurungan menangkap.

Apabila digunakan dengan kaedah split(), ungkapan biasa ini akan mengenal pasti setiap aksara pembatas (;) dan mencipta padanan kosong untuknya. Oleh itu, bahagian tatasusunan yang terhasil akan mengandungi elemen berikut:

[Text1, ;, Text2, ;, Text3, ;, Text4]

Pendekatan ini membolehkan kami mengekalkan struktur asal rentetan sambil membahagikannya kepada komponen individunya. Ia ialah teknik yang berkuasa untuk menghuraikan rentetan kompleks dengan cara yang mengekalkan integritinya.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Memelihara Pembatas Menggunakan Ungkapan Biasa?. 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