.表示匹配前面任意字符 *表示匹配前面的字符零次或多次 实现支持.和*的正则表达式匹配成功返回1失败返回0 Java代码
时间: 2024-09-14 09:08:51 浏览: 51
在Java中,我们可以使用Pattern和Matcher类来实现正则表达式的匹配,并通过它们的状态来判断是否匹配成功。以下是一个简单的例子,展示了如何使用`.`和`*`来实现这个功能:
```java
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexMatch {
public static int match(String regex, String input) {
Pattern pattern = Pattern.compile(regex); // 创建正则表达式模式
Matcher matcher = pattern.matcher(input); // 使用输入字符串创建Matcher实例
if (matcher.matches()) { // 匹配整个字符串
return 1; // 匹配成功,返回1
} else {
if (matcher.find()) { // 查找下一个匹配的部分,直到没有更多匹配
return 0; // 返回0,表示有部分匹配但不是整个字符串
} else {
return 0; // 如果找不到任何匹配,也返回0
}
}
}
public static void main(String[] args) {
System.out.println(match(".*", "abc")); // 匹配任意字符,结果应为1
System.out.println(match(".+", "a")); // 匹配一个或多个字符,结果应为0
System.out.println(match("\\d{3}\\.\\d{2}\\-\\d{4}", "123.45-6789")); // 匹配电话号码格式,结果应为1
}
}
```
在这个代码中,`match`方法首先尝试完全匹配输入字符串,如果成功返回1;如果没有完全匹配但存在部分匹配,则返回0。如果连一个部分匹配也没有,仍然返回0。
阅读全文