import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { private static final String REGEX = "\\bcat\\b"; private static final String INPUT = "cat cat cat cattie cat"; public static void main( String[] args ){ Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // 获取 matcher 对象 int count = 0; while(m.find()) { count++; System.out.println("Match number "+count); System.out.println("start(): "+m.start()); System.out.println("end(): "+m.end()); } } }
时间: 2024-04-19 18:26:02 浏览: 21
这是一个使用Java的正则表达式的示例代码。它演示了如何使用Pattern和Matcher类来查找匹配指定正则表达式的字符串。
首先,代码导入了java.util.regex包下的Matcher和Pattern类。接下来,创建了一个名为RegexMatches的类。
在类中,定义了一个名为REGEX的常量,它表示要匹配的正则表达式,这里的正则表达式是"\bcat\b",表示匹配单词"cat"。
还定义了一个名为INPUT的常量,它表示要在其中进行匹配的输入字符串。
在main方法中,首先使用Pattern.compile方法将正则表达式编译为一个Pattern对象,并将其赋值给变量p。
然后,通过调用p.matcher(INPUT)方法,获取一个Matcher对象m,该对象用于执行匹配操作。
接下来,通过调用m.find()方法进行匹配操作,并通过while循环遍历所有匹配结果。
在循环中,首先使用count变量记录匹配次数。
然后,通过调用m.start()方法获取当前匹配的起始位置,并通过调用m.end()方法获取当前匹配的结束位置。
最后,将匹配次数、起始位置和结束位置打印出来。
这段代码将输出所有匹配"cat"的位置信息。
相关问题
怎么解决import java.util.regex.Matcher;问题
如果你在使用Java编程时遇到了“import java.util.regex.Matcher”这个问题,可能是因为你的代码中使用了Java正则表达式,但是没有导入相关的包。
你可以在Java代码中添加以下导入语句:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
```
其中,Matcher和Pattern都是Java正则表达式相关的类,需要同时导入才能使用。添加了这两个导入语句后,就可以在代码中使用Matcher类了。
如果还有其他类需要导入,可以根据需要添加相应的导入语句。
import java.util.InputMismatchException;
import java.util.InputMismatchException 是 Java 中的一个 import 语句,用于导入 java.util 包中的 InputMismatchException 类。InputMismatchException 是一个继承自 java.util.NoSuchElementException 的异常类,通常在输入不匹配的情况下抛出。例如,在使用 Scanner 类从控制台读取输入时,如果输入的数据类型与所需的数据类型不匹配,则会抛出 InputMismatchException 异常。
导入 java.util.InputMismatchException 类后,就可以在代码中使用该类,例如:
```
import java.util.Scanner;
import java.util.InputMismatchException;
public class MyClass {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int num = scanner.nextInt();
System.out.println("输入的数字是:" + num);
} catch (InputMismatchException e) {
System.out.println("输入的不是数字!");
}
}
}
```
在上面代码中,我们使用 Scanner 类从控制台读取输入,如果输入的不是数字,则会抛出 InputMismatchException 异常,并被 catch 块捕获并处理。