Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menggunakan Regex dalam Java untuk Memadankan Corak Hanya Apabila Tidak Didahului oleh Aksara Tertentu?

Bagaimanakah Saya Boleh Menggunakan Regex dalam Java untuk Memadankan Corak Hanya Apabila Tidak Didahului oleh Aksara Tertentu?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 22:46:11731semak imbas

How Can I Use Regex in Java to Match Patterns Only When Not Preceded by Specific Characters?

Corak Pemadanan tidak Didahului oleh Aksara Tertentu menggunakan Regex

Di Java, ungkapan biasa menyediakan cara yang berkesan untuk memadankan corak dalam rentetan. Kadangkala, anda mungkin perlu memadankan corak hanya jika ia tidak didahului oleh aksara tertentu. Dengan memanfaatkan pandangan negatif di belakang, regex membolehkan anda mencapai ini.

Masalah:

Pertimbangkan rentetan berikut:

String s = "foobar barbar beachbar crowbar bar ";

Kami ingin memadankan semua kejadian "bar" yang tidak segera didahului oleh "foo." Output yang dikehendaki ialah:

barbar
beachbar
crowbar
bar

Penyelesaian:

Untuk menyelesaikan tugasan ini, kita boleh menggunakan corak regex berikut:

\w*(?<!foo)bar

Memecahkan corak:

  • w* sepadan dengan sebarang bilangan aksara perkataan (huruf, nombor, atau garis bawah) sebelum perlawanan yang berpotensi. Bahagian ini menangkap watak seperti "pantai" dalam "bar pantai."
  • (?

Dengan menggunakan corak ini, kita boleh berjaya memadankan kejadian "bar" yang tidak didahului oleh "foo." Hasilnya akan mencerminkan output yang diingini.

Nota Tambahan:

  • Untuk mendapatkan maklumat lanjut tentang pandangan negatif regeks di belakang, rujuk kepada "Ungkapan Biasa - Lihat Sekeliling."
  • Bahagian w* telah ditambahkan kemudian untuk menangkap aksara sebelum corak (cth., "pantai" dalam "bar pantai").

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Regex dalam Java untuk Memadankan Corak Hanya Apabila Tidak Didahului oleh Aksara Tertentu?. 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