Java正则表达式主要通过java.util.regex包中的Pattern和Matcher类来实现。以下是一些基本的语法: 1. 字符匹配:`.` 匹配任意字符,`\d` 匹配数字,`\D` 匹配非数字,`\s` 匹配空白字符,`\S` 匹配非空白字符,`\w` 匹配字母或数字或下划线,`\W` 匹配非字母或数字或下划线。 2. 量词:`*` 匹配前面的子表达式零次或多次,`+` 匹配前面的子表达式一次或多次,`?` 匹配前面的子表达式零次或一次,`{n}` 匹配前面的子表达式n次,`{n,}` 匹配前面的子表达式n次或更多次,`{n,m}` 匹配前面的子表达式n到m次。 3. 边界匹配:`^` 匹配输入字符串的开始位置,`$` 匹配输入字符串的结束位置,`\b` 匹配一个单词边界,`\B` 匹配非单词边界。 4. 特殊字符转义:如果需要匹配特殊字符本身,需要在其前面加上反斜杠 `\` 进行转义。 5. 分组和引用:用 `()` 来分组,然后可以用 `\数字` 来引用这个分组的内容,其中数字是该分组在所有分组中的顺序。 6. 选择:`|` 用来表示选择,如 `a|b` 可以匹配 "a" 或 "b"。 7. 预定义字符类:`\p{XXX}` 匹配特定的Unicode字符集,`\P{XXX}` 匹配除特定Unicode字符集外的所有字符。 例如,以下代码使用正则表达式匹配邮箱地址: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String regex = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; String email = "test@example.com"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(email); if (matcher.matches()) { System.out.println("匹配成功"); } else { System.out.println("匹配失败"); } } } ``` 在这个例子中,我们首先创建了一个Pattern对象,然后使用这个Pattern对象创建了一个Matcher对象,最后使用Matcher对象的matches方法来判断输入的字符串是否符合我们的正则表达式。 [2023-12-07 14:31:31 | AI写代码神器 | 580点数解答]