Rumah  >  Artikel  >  Java  >  Penjelasan dan penggunaan terperinci: Analisis ungkapan biasa Java

Penjelasan dan penggunaan terperinci: Analisis ungkapan biasa Java

WBOY
WBOYasal
2024-01-09 10:54:331043semak imbas

Penjelasan dan penggunaan terperinci: Analisis ungkapan biasa Java

Penjelasan terperinci dan penggunaan ungkapan biasa Java

Ungkapan Biasa (Ungkapan Biasa) ialah alat pemprosesan teks yang berkuasa yang digunakan secara meluas dalam pelbagai bahasa pengaturcaraan. Di Java, kita boleh menggunakan ungkapan biasa untuk mencapai operasi seperti pemadanan, penggantian dan pemisahan rentetan. Artikel ini akan memperkenalkan penggunaan ungkapan biasa Java secara terperinci dan memberikan contoh kod tertentu.

  1. Sintaks Ungkapan Biasa

Sintaks ungkapan biasa Java konsisten dengan sintaks ungkapan biasa standard. Berikut ialah beberapa aksara meta ungkapan biasa yang biasa digunakan dan maknanya:

  • d: Memadankan sebarang nombor.
  • D: Padankan mana-mana aksara bukan angka.
  • w: Padankan mana-mana huruf, nombor atau garis bawah.
  • W: Padankan mana-mana aksara bukan huruf, nombor atau garis bawah.
  • s: Padankan mana-mana aksara ruang putih, termasuk ruang, tab, baris baharu, dsb.
  • S: Padankan mana-mana aksara bukan ruang putih.
  • : Padankan sempadan perkataan.
  • ^: Padankan kedudukan permulaan rentetan.
  • $: Padankan kedudukan hujung rentetan.
  • .: Padankan mana-mana watak.
  • *: Padankan sifar atau lebih elemen sebelumnya.
  • +: Padankan satu atau lebih elemen sebelumnya.
  • ?: Padankan sifar atau satu elemen sebelumnya.
  • {n}: Padankan elemen sebelumnya tepat n kali.
  • {n,}: Padankan elemen sebelumnya sekurang-kurangnya n kali.
  • {n,m}: Padankan elemen sebelumnya sekurang-kurangnya n kali dan paling banyak m kali.
  • [...]: Padankan mana-mana aksara dalam kurungan segi empat sama.
  • 1: Memadankan mana-mana watak kecuali aksara dalam kurungan segi empat sama.

Terdapat banyak metakarakter dan peraturan tatabahasa lain yang boleh digunakan secara fleksibel mengikut keperluan tertentu.

  1. Kelas Corak

Di Java, kelas Corak ialah perwakilan terkumpul bagi ungkapan biasa. Kita boleh menggunakan kaedah statik compile() yang disediakan oleh kelas Pattern untuk menyusun rentetan ungkapan biasa dan menjana objek Pattern. Contohnya: compile()来编译正则表达式字符串,生成一个Pattern对象。例如:

String regex = "\d+";
Pattern pattern = Pattern.compile(regex);
  1. Matcher类

Matcher类是所有正则表达式匹配操作的引擎。我们可以通过Pattern对象的matcher()方法来创建一个Matcher对象。

  • matches()方法:用于测试正则表达式是否匹配整个字符串。例如:
String regex = "hello";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("hello world");
boolean matched = matcher.matches();
System.out.println(matched); // 输出:true
  • find()方法:用于查找字符串中与正则表达式匹配的子序列。例如:
String regex = "\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("abc123def");
while (matcher.find()) {
    System.out.println(matcher.group());
}

以上代码输出结果为:

123
  • replaceAll()
    String regex = "\btom\b";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher("I love tom and tom loves me");
    String result = matcher.replaceAll("Jerry");
    System.out.println(result); // 输出:I love Jerry and Jerry loves me
    1. Kelas Matcher
    1. Kelas Matcher ialah enjin untuk semua operasi pemadanan ekspresi biasa. Kita boleh mencipta objek Matcher melalui kaedah matcher() objek Pattern. Kaedah

    matches(): digunakan untuk menguji sama ada ungkapan biasa sepadan dengan keseluruhan rentetan. Contohnya:

      String regex = "^1[3-9]\d{9}$";
      Pattern pattern = Pattern.compile(regex);
      String phone = "13612345678";
      boolean isValid = pattern.matcher(phone).matches();
      System.out.println(isValid); // 输出:true
    • find() kaedah: digunakan untuk mencari urutan dalam rentetan yang sepadan dengan ungkapan biasa. Contohnya:
      String regex = "<a\s.*?href="([^"]+)".*?>";
      Pattern pattern = Pattern.compile(regex);
      String html = "<a href="http://www.example.com">Example</a>";
      Matcher matcher = pattern.matcher(html);
      while (matcher.find()) {
          System.out.println(matcher.group(1));
      }
    • Hasil keluaran kod di atas ialah:
    • http://www.example.com

    kaedahreplaceAll(): digunakan untuk menggantikan bahagian rentetan yang sepadan dengan ungkapan biasa. Contohnya:

      String regex = "\b\w+\b";
      Pattern pattern = Pattern.compile(regex);
      String text = "Hello world, I love Java!";
      Matcher matcher = pattern.matcher(text);
      List<String> words = new ArrayList<>();
      while (matcher.find()) {
          words.add(matcher.group());
      }
      System.out.println(words);
    • Contoh khusus

    Berikut ialah beberapa senario biasa menggunakan ungkapan biasa dan contoh kod yang sepadan:


    Sahkan sama ada nombor telefon mudah alih itu sah:
    ss
      Extract pautan HTML
    1. | ungkapan biasa Java secara terperinci, Dan contoh kod khusus diberikan. Dengan mempelajari sintaks ungkapan biasa dan penggunaan kelas Pattern dan Matcher, kami boleh menggunakan ungkapan biasa secara fleksibel untuk memproses rentetan. Saya harap artikel ini dapat membantu anda memahami dan menggunakan ungkapan biasa Java.
    ... 🎜↩🎜🎜🎜

    Atas ialah kandungan terperinci Penjelasan dan penggunaan terperinci: Analisis 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