解释 Java 正则表达式中的字符类


Java 正则表达式,通常称为 rege。它用于搜索和处理文本。它们被用于许多应用程序中。网络抓取、电子邮件筛选和密码验证就是其中的一些。一个可以用于匹配字符串中特定字符序列的模式也称为正则表达式。为了构建模式,使用了一种特殊的语法,其中包含量词、字符类、通配符和普通字符。

字符类是可以由正则表达式匹配的字符。它们使用方括号 [] 定义。例如,字符类 [abc] 匹配字符 a、b 和 c。也可以使用连字符指定字符范围。字符类 [a-z] 匹配所有小写字母。

正则表达式中的字符类

字符类

描述

[abc]

它匹配字符“a”、“b”或“c”中的一个字符。

[^\^abc]

它匹配一个不在“a”、“b”或“c”集合中的字符。

[a-c]

它与从 'a' 到 'c' 的多个字符兼容。

[a-c[f-h]]

它与'a-c'或'f-h'集合中的任何字符兼容。

[a-c&&[b-c]]

它与'a-c'和'b-c'集合中的任何字符兼容。

[a-c&&[\^b-c]]

它匹配'a-c'集合中的一个字符,但不在'b-c'集合中。

示例 1

此 Java 代码说明如何使用正则表达式匹配模式。该代码加载必要的正则表达式库并创建一个名为 RegexExample 的类。在 main 函数中,Pattern.matches 方法用于检查字符串是否与模式“[abc]”匹配。它表示它们必须包含'a'、'b'或'c'。

算法

  • 步骤 1:使用 import java.util.regex.*; 导入正则表达式库。

  • 步骤 2:定义一个名为 RegexExample 的类。

  • 步骤 3:启动 main 方法。

  • 步骤 4:使用 Pattern.matches 检查字符串是否与模式匹配。

  • 步骤 5:测试字符串“abc”是否与模式“[abc]”匹配。结果:false。

  • 步骤 6:测试字符串“a”是否与模式“[abc]”匹配。结果:true。

  • 步骤 7:测试字符串“abcd”是否与模式“[abc]”匹配。结果:false。

  • 步骤 8:打印结果。

示例

import java.util.regex.*;

public class RegexExample {
    public static void main(String args[]) {
        System.out.println(Pattern.matches("[abc]", "abc"));
        System.out.println(Pattern.matches("[abc]", "a"));
        System.out.println(Pattern.matches("[abc]", "abcd"));
    }
}

输出

false
true
false

示例 2

该代码使用 Java 正则表达式库来检查字符串是否与某个模式匹配。第一个模式匹配从'a'到'f'的任何小写字母。第二个模式匹配

  • 从'a'到'z'的字母

  • 从'A'到'Z'的大写字母

  • 或从'0'到'9'的数字。

第三个将与不是'r'、's'或't'的小写/大写字母兼容。如果字符串与模式匹配,则输出为 true,否则为 false。

算法

  • 步骤 1:使用 Pattern.matches 检查字符串是否与给定模式匹配。

  • 步骤 2:检查字符串“d”是否与模式“[a-f]”匹配。结果:true。

  • 步骤 3:打印第一次匹配的结果。输出:true。

  • 步骤 4:重新使用 Pattern.matches 检查字符串“E”是否与模式“[a-zA-G0-9]”匹配。结果:true。

  • 步骤 5:打印第二次匹配的结果。输出:true。

  • 步骤 6:重新使用 Pattern.matches 检查字符串“r”是否与模式“[a-zA-Z&&[^rst]]”匹配。结果:false。

  • 步骤 7:打印第三次匹配的结果。输出:false。

  • 步骤 8:结束 main 方法。

示例

import java.util.regex. * ;
public class RegexInstance {
  public static void main(String[] args) {
    boolean isMatch = Pattern.matches("[a-f]", "d"); 
    System.out.println(isMatch);
    isMatch = Pattern.matches("[a-zA-G0-9]", "E"); 
    System.out.println(isMatch);
    isMatch = Pattern.matches("[a-zA-Z&&[^rst]]", "r"); 
    System.out.println(isMatch);

  }

}

输出

true
true
false

示例 3

在提供的 Java 代码中,正则表达式用于模式匹配。程序检查各种字符串是否与特定模式匹配,例如匹配任何字符后跟'g'或'f'。输出确认“fg”和“mnv”的匹配,而其他测试用例与模式不匹配。

算法

  • 步骤 1:启动 main 方法。

  • 步骤 2:使用 Pattern.matches 检查字符串是否与指定的模式匹配。

  • 步骤 3:检查字符串“fg”是否与模式“.g”匹配。点 . 匹配任何单个字符,因此“.g”匹配以“g”结尾的任何两个字符的字符串。结果:true。

  • 步骤 4:打印第一次匹配的结果。输出:true。

  • 步骤 5:重新使用 Pattern.matches 检查字符串“de”是否与模式“.f”匹配。这里,“.f”匹配以“f”结尾的任何两个字符的字符串。结果:false。

  • 步骤 6:打印第二次匹配的结果。输出:false。

  • 步骤 7:重新使用 Pattern.matches 检查字符串“xyz”是否与模式“.q”匹配。这里,“.q”匹配以“q”结尾的任何两个字符的字符串。结果:false。

  • 步骤 8:打印第三次匹配的结果。输出:false。

  • 步骤 9:重新使用 Pattern.matches 检查字符串“gce”是否与模式“.c”匹配。这里,“.c”匹配以“c”结尾的任何两个字符的字符串。结果:false。

  • 步骤 10:打印第四次匹配的结果。输出:false。

  • 步骤 11:重新使用 Pattern.matches 检查字符串“mnv”是否与模式“..v”匹配。这里,“..v”匹配以“v”结尾的任何三个字符的字符串。结果:true。

  • 步骤 12:打印第五次匹配的结果。输出:true。

  • 步骤 13:结束 main 方法。

示例

import java.util.regex.Pattern;
 
public class RegexInstance2 {
	public static void main(String args[]){
		System.out.println(Pattern.matches(".g", "fg"));  
		System.out.println(Pattern.matches(".f", "de"));
		System.out.println(Pattern.matches(".q", "xyz"));
		System.out.println(Pattern.matches(".c", "gce"));
		System.out.println(Pattern.matches("..v", "mnv"));
	}
}

输出

true
false
false
false
true

结论

简而言之,Java 正则表达式中的字符类在文本处理操作中发挥着重要作用。它们用于指定正则表达式模式可以匹配的字符集。这些类用方括号 [] 表示,它们允许您匹配特定字符、字符范围,甚至字符组合。字符类允许您设计灵活且强大的模式,这些模式有助于执行诸如密码验证、电子邮件筛选和网站抓取等操作。这些示例展示了 Java 代码如何使用字符类来识别字符串中的模式并根据匹配结果做出智能决策。

更新于: 2023年8月29日

294 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告