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