Rumah >Java >javaTutorial >Penyelaman Mendalam ke dalam Sintaks Ungkapan Biasa Java

Penyelaman Mendalam ke dalam Sintaks Ungkapan Biasa Java

PHPz
PHPzasal
2024-01-09 21:33:44695semak imbas

Penyelaman Mendalam ke dalam Sintaks Ungkapan Biasa Java

Analisis mendalam sintaks ungkapan biasa Java, contoh kod khusus diperlukan

Ekspresi biasa ialah alat padanan corak yang berkuasa, yang telah digunakan secara meluas dalam pelbagai bahasa pengaturcaraan. Di Java, kita boleh menggunakan kelas yang disediakan oleh pakej java.util.regex untuk melaksanakan fungsi ekspresi biasa. Artikel ini akan menyelidiki sintaks ungkapan biasa Java dan menggambarkannya dengan contoh kod tertentu.

1. Sintaks asas

  1. Memadankan aksara
    Dalam ungkapan biasa, kita boleh menggunakan aksara biasa untuk memadankan aksara yang sama. Contohnya, ungkapan biasa "hello" boleh digunakan untuk memadankan rentetan "hello", tetapi tidak boleh memadankan "hello" atau "Hello", dsb.
  2. Kelas aksara
    Kelas aksara diwakili oleh kurungan segi empat sama [] dan digunakan untuk memadankan mana-mana satu set aksara. Sebagai contoh, ungkapan biasa "[abc]" boleh digunakan untuk memadankan mana-mana aksara "a", "b" atau "c" dalam rentetan.
  3. Escape Characters
    Gunakan garis miring ke belakang untuk melarikan diri daripada watak istimewa supaya ia sepadan dengan watak biasa. Contohnya, ungkapan biasa "." boleh digunakan untuk memadankan titik perpuluhan dalam rentetan.
  4. Bilangan ulangan
    Anda boleh menggunakan kurungan kerinting {} untuk menentukan bilangan ulangan. Contohnya, ungkapan biasa "a{2,4}" boleh memadankan kejadian 2 hingga 4 aksara "a" berturut-turut dalam rentetan.
  5. Padanan sempadan
    Gunakan "^" untuk mewakili kedudukan permulaan rentetan dan gunakan "$" untuk mewakili kedudukan akhir rentetan. Sebagai contoh, ungkapan biasa "^hello$" memastikan bahawa rentetan itu betul-betul sepadan dengan "hello".

2. Kelas aksara biasa

  1. Nombor
    Gunakan "d" untuk memadankan mana-mana aksara angka. Contohnya, ungkapan biasa "d{3}" boleh memadankan mana-mana tiga aksara angka berturut-turut.
  2. Huruf
    Gunakan "w" untuk memadankan mana-mana aksara abjad. Sebagai contoh, ungkapan biasa "w+" boleh memadankan mana-mana aksara abjad berturut-turut.
  3. White space character
    Gunakan "s" untuk memadankan mana-mana aksara ruang putih, termasuk ruang, tab, baris baharu, dsb. Contohnya, ungkapan biasa "s+" boleh memadankan mana-mana aksara ruang kosong berturut-turut.
  4. Watak kecuali aksara yang ditentukan
    Gunakan "[^]" untuk memadankan mana-mana aksara kecuali aksara yang ditentukan. Contohnya, ungkapan biasa "1" boleh memadankan mana-mana aksara kecuali "a", "b" dan "c".

3. Contoh Analisis

Yang berikut menggunakan beberapa contoh untuk menganalisis lebih lanjut sintaks ungkapan biasa Java.

  1. Memadankan alamat e-mel
    Kami boleh menggunakan ungkapan biasa untuk memadankan alamat e-mel yang sah. Contohnya, ungkapan biasa "^w+@w+.w+$" boleh memadankan alamat e-mel dalam borang "abc@163.com" atau "x.y.z@gmail.com".
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidator {
    private static final String EMAIL_REGEX = "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$";

    public static boolean validateEmail(String email) {
        Pattern pattern = Pattern.compile(EMAIL_REGEX);
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();
    }

    public static void main(String[] args) {
        String[] emails = {"abc@163.com", "xyz@gmail.com", "invalidemail", "123456"};

        for (String email : emails) {
            System.out.println(email + ": " + validateEmail(email));
        }
    }
}
  1. Ekstrak maklumat URL
    Kami boleh menggunakan ungkapan biasa untuk mengekstrak protokol, nama hos dan maklumat laluan dalam URL. Sebagai contoh, ungkapan biasa "^(https?)://([w-]+.)+[w-]+(/[w-./?%&=]*)?$" boleh sepadan dengan borang " http://www.example.com/path/to/page.html".
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class URLParser {
    private static final String URL_REGEX = "^(https?)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$";

    public static void parseURL(String url) {
        Pattern pattern = Pattern.compile(URL_REGEX);
        Matcher matcher = pattern.matcher(url);
        if (matcher.matches()) {
            System.out.println("Protocol: " + matcher.group(1));
            System.out.println("Hostname: " + matcher.group(2));
            System.out.println("Path: " + matcher.group(3));
        } else {
            System.out.println("Invalid URL format");
        }
    }

    public static void main(String[] args) {
        String[] urls = {"http://www.example.com/path/to/page.html", "https://www.example.com/", "invalidurl"};

        for (String url : urls) {
            System.out.println("URL: " + url);
            parseURL(url);
            System.out.println();
        }
    }
}

Contoh kod di atas menunjukkan cara menggunakan ungkapan biasa untuk mengesahkan alamat e-mel dan mengekstrak maklumat daripada URL. Melalui analisis mendalam tentang sintaks ungkapan biasa Java dan digabungkan dengan contoh kod tertentu, saya percaya bahawa pembaca mempunyai pemahaman yang lebih mendalam tentang penggunaan ungkapan biasa Java. Semoga artikel ini bermanfaat kepada anda.


  1. abc

Atas ialah kandungan terperinci Penyelaman Mendalam ke dalam Sintaks 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