下面是一个简单的示例,展示了如何在 Java 中使用正则表达式进行匹配:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String text = "The cat in the hat";
// 创建一个 Pattern 对象,用于编译正则表达式
Pattern pattern = Pattern.compile("cat");
// 创建一个 Matcher 对象,用于匹配字符串
Matcher matcher = pattern.matcher(text);
// 查找匹配
while (matcher.find()) {
System.out.println("Found at index: " + matcher.start() + " - " + matcher.group());
}
}
}
在Java中,正则表达式通常用于字符串匹配和搜索操作。以下是一些常用的Java正则表达式示例:
正则表达式 | 示例 | 描述 |
---|---|---|
\d+ | 12345 , 007 , 42 | 匹配一个或多个数字。 |
\d{3} | 123 , 456 , 789 | 匹配三个连续的数字。 |
\w+ | hello123 , world , test_123 | 匹配一个或多个字母、数字或下划线。 |
[a-zA-Z0-9]+ | Hello123 , OpenAI , Java8 | 匹配一个或多个大小写字母和数字。 |
\s+ | , \t , \n , | 匹配一个或多个空白字符(空格、制表符等)。 |
\b | \bword\b , \btest\b , \bJava\b | 匹配一个单词边界。 |
. | a , 1 , @ , \n | 匹配任何单个字符。 |
[] | [abc] , [0-9] , [A-Za-z] | 匹配方括号中列出的任何字符。 |
[^] | [^abc] , [^0-9] , [^A-Za-z] | 匹配除方括号中列出的字符之外的任何字符。 |
^ | ^Start , ^123 , ^Java | 匹配输入字符串的开始。 |
$ | End$ , 123$ , Java$ | 匹配输入字符串的结尾。 |
* | a* , 123* , .* | 匹配零个或多个前面的字符。 |
+ | a+ , 123+ , .+ | 匹配一个或多个前面的字符。 |
? | a? , 123? , .? | 匹配零个或一个前面的字符。 |
{n} | a{3} , 123{4} , .{2} | 匹配恰好 n 次前面的字符。 |
{n,} | a{3,} , 123{2,} , .{4,} | 匹配至少 n 次前面的字符。 |
{n,m} | a{2,4} , 123{1,3} , .{3,5} | 匹配至少 n 次但不超过 m 次前面的字符。 |
() | (abc) , (123) , (Java) | 将模式中的部分定义为捕获组。 |
\ | \. ,\* ,\( | 用于转义特殊字符。 |