1. Ekspresi reguler dalam string
Gunakan ekspresi reguler untuk mencari, mengekstrak, segmen, mengganti, dan operasi lainnya pada string. Metode khusus berikut disediakan di kelas string:
Pencocokan Boolean (String Regex): Menentukan apakah string cocok dengan ekspresi reguler yang ditentukan.
String ReplaceAll (String Regex, Penggantian String): Ganti semua substring pencocokan regex di string ini dengan penggantian.
String [] split (string regex): gunakan regex sebagai pemisah untuk membagi string menjadi beberapa substring.
Semua metode khusus di atas bergantung pada ekspresi reguler yang disediakan oleh Java.
2. Buat ekspresi reguler
X: Karakter X (x dapat mewakili karakter hukum apa pun);
/0mnn: Karakter yang diwakili oleh nomor oktal OMNN;
/xhh: karakter yang diwakili oleh hexadecimal 0xhh;
/uhhhh: karakter unicode yang diwakili oleh hexadecimal 0xhhhh;
/t: tab ('/u0009');
/n: karakter baru (baris newline) ('/u000a');
/r: karakter carriage return ('/u000d');
/f: break halaman ('/u000c');
/A: simbol alarm (bel) ('/u0007');
/E: Escape Character ('/U001b');
/CX: Pengontrol yang sesuai dengan x. Misalnya, /cm cocok dengan CTRL-M. Nilai x harus menjadi salah satu dari ~ z atau ~ z;
3. Karakter Khusus dalam Ekspresi Reguler
$: Cocokkan ujung garis. Untuk mencocokkan karakter $ itu sendiri, gunakan /$;
^: Cocokkan awal garis. Untuk mencocokkan karakter itu sendiri, gunakan / ^;
(): Tandai posisi awal dan akhir dari sub -ekspresi. Untuk mencocokkan karakter ini, gunakan /(dan /);
[]: Digunakan untuk menentukan posisi awal dan akhir dari ekspresi braket. Untuk mencocokkan karakter ini, gunakan /[dan /];
{}: Digunakan untuk menandai frekuensi subekspresi sebelumnya. Untuk mencocokkan karakter ini, gunakan /{dan /};
*: Menentukan bahwa subekspresi sebelumnya dapat terjadi nol atau lebih kali. Untuk mencocokkan karakter * itu sendiri, gunakan / *;
+: Menentukan bahwa subekspresi sebelumnya dapat terjadi sekali atau lebih kali. Untuk mencocokkan karakter + itu sendiri, gunakan / +;
?: Menentukan bahwa subekspresi sebelumnya dapat terjadi nol atau sekali. Untuk mencocokkan? Karakter itu sendiri, gunakan /?;
.: Cocokkan karakter unit apa pun kecuali line break/n. Untuk mencocokkan, karakter itu sendiri, gunakan /.;
/: Digunakan untuk melarikan diri dari karakter berikutnya, atau menentukan karakter oktal atau heksadesimal. Untuk mencocokkan /karakter, gunakan //;
|: Tentukan salah satu dari dua item. Untuk mencocokkan karakter | itu sendiri, gunakan /|;
4. Karakter yang telah ditentukan
.: Dapat mencocokkan karakter apa pun;
/D: Cocokkan semua angka dari 0 ~ 9;
/D: Cocokkan non-number;
/S: Cocokkan semua karakter whitespace, termasuk spasi, tab, carriage return, jeda halaman, istirahat garis, dll.;
/S: Cocokkan semua karakter non-whitespace;
/W: Cocokkan semua karakter kata, termasuk semua angka dari 0 ~ 9, 26 huruf bahasa Inggris dan garis bawah (_);
/W: Cocokkan semua karakter non-kata;
5. Karakter pencocokan batas
^: Awal garis
$: Akhir dari garis
/B: Batas kata
/B: Batas non-kata
/A: Awal input
/G: Akhir dari pertandingan sebelumnya
/Z: akhir input, hanya untuk karakter akhir terakhir
/z: akhir input
6. Simbol yang mewakili jumlah kecocokan
Gambar berikut menunjukkan simbol yang mewakili jumlah kecocokan, yang digunakan untuk menentukan berapa kali simbol muncul di sebelah kiri simbol:
(1) Misalkan kita ingin mencari nomor jaminan sosial AS dalam file teks. Format nomor ini adalah 999-99-9999. Ekspresi reguler yang digunakan untuk mencocokkannya ditunjukkan pada Gambar 1. Dalam ekspresi reguler, tanda hubung ("-") memiliki makna khusus, yang mewakili rentang, seperti dari 0 hingga 9. Oleh karena itu, ketika mencocokkan tanda hubung dalam nomor jaminan sosial, itu harus didahului oleh karakter pelarian "/".
(2) Misalkan saat mencari, Anda berharap tanda hubung dapat muncul atau tidak-yaitu, 999-99-9999 dan 999999999999 keduanya dalam format yang benar. Saat ini, Anda dapat menambahkan "?" Simbol Kualifikasi Kuantitas Setelah tanda hubung, seperti yang ditunjukkan pada gambar:
(3) Mari kita lihat contoh lain di bawah ini. Satu format untuk plat nomor mobil Amerika adalah empat angka ditambah dua huruf. Ekspresi regulernya didahului oleh bagian angka "[0-9] {4}" dan bagian huruf "[az] {2}". Gambar berikut menunjukkan ekspresi reguler lengkap.
7. Beberapa contoh 1
fungsi mengganti (konten) {var reg = '// [(// w+) //]', pola = baru regexp (reg, 'g'); return content.replace (pola, '<img src = "img/$ 1.png">');} // atau fungsi ganti (konten) {return content.replace (// [(/w+) // g, '<img src = "img/$ 1.png">');}Contoh 2
// Zero-lebar tampilan di belakang solusi alternatif // (? <= ...) dan (? <! ...) // Metode 1: membalikkan string, cari dengan lookahead, ganti, dan kemudian mundur kembali, misalnya: string.prototype.reverse = function () {return this.split (''). 'foo.bar | baz'.replace (/(? <=/.) B/,' c ') segera ganti b dengan'. ' di depannya dengan c'foo.bar | baz'.reverse (). ganti (/b (? =/.)/g, 'c'). Reverse () //foo.car|baz//method 2: jangan menggunakan pernyataan nol dengan lebar, ', // simulate' foo.bar | Baz'.replip '' '(hakim sendiri///// <// simulate' foo.bar | Baz'.replaPlip (') ((((/., di depan ke c'foo.bar | baz'.replace (/(/.)? b/, fungsi ($ 0, $ 1) {return $ 1? $ 1 + 'c': $ 0;}) //foo.car|baz//simulate 'foo.bar | baz'.replace (/? <!/.) '.bar | baz'.replace (/. //'tttt'.replace(/(?<=T), 'x') hasilnya harus 'txxx''tttt'.replace (/(t)? t/g, fungsi ($ 0, $ 1) {return $ 1? $ 1 +' x ': $ 0;}) // txtxContoh 3
Penggunaan $ & Simbol
fungsi EscapeRegExp (str) {return str.replace (/[abc]/g, "($ &)");} var str = 'a12b34c'; console.log (escaperegexp (str)); // (a) 12 (b) 34 (c)