Java正则表达式使用

后端 潘老师 7个月前 (10-16) 133 ℃ (0) 扫码查看

在Java语言中,正则表达式(Regex或Regular Expression)是用于操作、搜索和编辑字符串的应用程序编程接口(API)。您可以通过在代码中导入java.util.regex API包来在Java中使用正则表达式。

java.util.regex包下有以下三个类:

  1. regex.Pattern:这个类有助于定义模式。
  2. regex.Matcher:这个类有助于使用模式在输入字符串上执行匹配操作。
  3. PatternSyntaxException:这个类通过指示正则表达式模式中的语法错误来帮助用户。

util.regex.Pattern类 这个类(util.regex.Pattern)是正则表达式的编译版本,可以通过compile()方法调用。compile()方法接受正则表达式作为第一个参数。这个类不提供任何公共构造函数。

Pattern类

Pattern类中有各种不同的函数,用于处理正则表达式。

方法名 描述
static Pattern compile(String regex) 用于将给定的正则表达式编译成一个模式。
Matcher Matcher (CharSequence input) 用于创建一个用于匹配给定字符串的匹配器,该字符串由用户输入。
String toString() 该方法返回字符串的表示形式。
String[] split(CharSequence input) 该方法基于匹配将字符串拆分。
static Boolean matches(String regex, CharSequence input) 该方法将正则表达式与给定的输入字符串进行匹配。

util.regex.Matcher类 这个类用于通过在任何对象或Pattern上调用matcher()函数,在输入字符串上执行匹配操作。这个类不定义任何公共构造函数。

Matcher类

Matcher类中有各种不同的函数,用于处理正则表达式的匹配操作:

方法名 描述
boolean matches() 此方法检查正则表达式是否与模式匹配。
boolean find() 此方法在字符串中搜索正则表达式的出现。
boolean find(int start) 此方法从指定的起始索引开始在字符串中搜索正则表达式的出现。
String group() 此方法有助于查找匹配的子序列。
int start() 此方法有助于返回匹配子序列的起始索引。
int end() 此方法有助于返回匹配子序列的结束索引。
int groupCount() 此方法有助于返回匹配子序列的总数。

在Java中使用正则表达式示例

示例1:此示例演示了在Java代码中使用点运算符的方法。

import java.util.regex.*;

class reg {
    public static void main(String args[]) {
        System.out.println(Pattern.matches(".r.", "arp")); // 此语句显示布尔值 True,因为第二个字符在字符串和正则表达式中都是 r。
        System.out.println(Pattern.matches(".bm", "abc")); // 此语句显示布尔值 False,因为字符串和正则表达式的第三个字符不同。
        System.out.println(Pattern.matches("..m", "msm")); // 此语句显示布尔值 True,因为字符串和正则表达式的第三个字符都是 m。
        System.out.println(Pattern.matches("a..s", "amns")); // 此语句显示布尔值 True,因为字符串的第一个字符和最后一个字符与正则表达式匹配。
        System.out.println(Pattern.matches(".s.", "mas")); // 此语句显示布尔值 False,因为字符串和正则表达式的第二个字符不同。
    }
}

示例2:以下示例使用正则表达式的不同字符。

import java.util.regex.*;

class Reg1 {
    public static void main(String args[]) {
        System.out.println(" 1. ");
        System.out.println(
            Pattern.matches("^[ a-z]om", "Tom")); // 此语句返回 False,因为字符串以大写字母开头,与正则表达式不匹配。

        System.out.println(" 2. ");
        System.out.println(
            Pattern.matches("[Rpq]om", "Tom")); // 此语句返回 False,因为字符串以 'T' 开头,与正则表达式中的 R、P 或 Q 中的任何字符不匹配。

        System.out.println(" 3. ");
        System.out.println(
            Pattern.matches("[Tt]om", "Tom")); // 此语句返回 True,因为字符串以 'T' 开头,与正则表达式中的字符 'T' 匹配。

        System.out.println(" 4. ");
        System.out.println(
            Pattern.matches("Cat|Rat", "Rat")); // 此语句返回 True,因为字符串与正则表达式的第二部分匹配。

        System.out.println(" 5. ");
        System.out.println(
            Pattern.matches("[CM]at|[Bb]ad", "Bad")); // 此语句返回 True,因为字符串与正则表达式的第二部分匹配。

        System.out.println(" 6. ");
        System.out.println(
            Pattern.matches(".*bit.*", "rabbit")); // 此语句返回 True,因为字符串包含 "bit",与正则表达式匹配。

        System.out.println(" 7. ");
        System.out.println(
            Pattern.matches("^[\\d].*", "abc")); // 此语句返回 True,因为字符串以字母开头,与正则表达式不匹配数字。

        System.out.println(" 8. ");
        System.out.println(
            Pattern.matches("^[^\\d].*", "abc123")); // 此语句返回 True,因为字符串以字母开头,与正则表达式由于数字的否定匹配。

        System.out.println(" 9. ");
        System.out.println(
            Pattern.matches("[a-zA-Z][a-zA-Z][0-9A-Z]", "aPz")); // 此语句返回 False,因为字符串的最后一个字符 'z' 与正则表达式中的 '0-9A-Z' 不匹配。

        System.out.println(" 10. ");
        System.out.println(
            Pattern.matches("[a-zA-Z][a-zA-Z][a-zA-Z]", "aAA")); // 此语句返回 True,因为字符串中的所有字符与正则表达式匹配。

        System.out.println(" 11. ");
        System.out.println(
            Pattern.matches("java[tT]poin[tT]$", "javaTpoint")); // 此语句返回 True,因为字符串以 't' 结尾,与正则表达式匹配。

        System.out.println(" 12. ");
        System.out.println(
            Pattern.matches("\\D*", "abcde")); // 此语句返回 True,因为字符串不包含任何数字,所以与正则表达式匹配。

        System.out.println(" 13. ");
        System.out.println(
            Pattern.matches("\\D*", "abcde123")); // 此语句返回 False,因为字符串包含数字,不符合正则表达式。
    }
}

附录

Java常用正则表达式大全


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/9653.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】