Java 中的正規表示式特殊字元

Rupam Yadav 2023年1月30日 2022年4月27日
  1. Java 正規表示式中的特殊字元
  2. 在 Java 中使用正規表示式特殊字元的示例
Java 中的正規表示式特殊字元

Regex(正規表示式)是用於操作、搜尋和處理文字字串的有用工具。它簡化並減少了程式中的行數。

我們將看看如何在正規表示式中使用特殊字元。

Java 正規表示式中的特殊字元

正規表示式是一種表示文字匹配模式的文字語法。正規表示式使用特殊字元,例如 .+*?^$()[]{}|\

正規表示式中的字元(字串中表示其模式的字元)要麼是具有特殊含義的元字元,要麼是具有字面含義的常規字元。

元字元 用途 例子
^ 字串或否定符號的開頭 ^a 匹配字串開頭的 a
. 匹配除換行符以外的任何單個字元 a.[0-9] 匹配 a 字串,該字串具有 a 後跟一個字元和一個數字
[] 匹配括號中包含的單個字元的括號表示式 [a-c] 等於 abc, 即 a|b|c[abc]
[^] 匹配未包含在括號中的單個字元 [^abc] 匹配除 abc 以外的任何字元
$ 隊伍的盡頭 ^abc$ 匹配以 abc 開頭和結尾的字串
() 分組字元 (ab)\1 匹配 abab
* 匹配前面的元素或零次或多次 ab*c 匹配 acabcabbbc 等。
{m,n} 匹配前面的元素至少 m 次且不超過 n 次 a{3,5} 匹配 aaa, aaaa, aaaaa
? 匹配前面的元素零次或一次 ab?c 匹配 ac, abc
+ 匹配前面的元素一次或多次 ab+c 匹配 abcabbcabbbc 等,但不匹配 ac
| 選擇運算子,它匹配運算子 `\ 之前的表示式或之後的表示式 `
\ 轉義或反斜槓 常見的轉義序列,如 \n 或換行符,\t 用於製表符

在 Java 中使用正規表示式特殊字元的示例

在這個例子中,我們使用了 java.util.regex 包中的 PatternMatcher 類。Pattern 類表示正規表示式。

當我們建立 Pattern 類的例項時,我們將正規表示式作為字串傳遞。

這裡我們有一個正規表示式 regex_pattern 作為字串。此模式用於檢查密碼是否符合以下條件。

  1. 密碼中必須包含至少一位 [0-9]
  2. 密碼中至少需要一個小寫字元 [a-z]
  3. 密碼中至少需要一個大寫字元 [A-Z]
  4. 至少一個特殊字元,如! @ # & (),必須包含在密碼中。
  5. 密碼長度必須至少為 8 個字元且不超過 24 個字元。

compile() 方法從指定的正規表示式建立一個模式。稍後我們將使用此模式製作一個 Matcher 物件。

該模式可以使用 Matcher 物件與正規表示式的任何字元序列匹配。matcher 方法建立一個匹配器,將給定的輸入與模式匹配。

我們將兩個字串與模式匹配並列印輸出(matches() 方法返回的布林值)。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {
    public static void main(String [] args) {
        String regex_pattern =
                "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#&()–[{}]:;',?/*~$^+=<>]).{8,24}$";

        Pattern pattern = Pattern.compile(regex_pattern);

        String inputPassword1 = "Password1@@1990";
        String inputPassword2 = "Pass190";

        Matcher matcher1 = pattern.matcher(inputPassword1);
        Matcher matcher2 = pattern.matcher(inputPassword2);

        System.out.println("Password 1 matches pattern : "+matcher1.matches());
        System.out.println("Password 2 matches pattern : "+matcher2.matches());

    }
}

輸出:

Password 1 matches pattern : true
Password 2 matches pattern : false
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Regex