Java正则表达式教程 – Java正则表达式匹配
Matcher 类对字符序列执行匹配通过解释在 Pattern 对象中定义的编译模式。
Pattern 类的 matcher()方法创建一个实例的 Matcher 类。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String regex = "[a-z]@.";
Pattern p = Pattern.compile(regex);
String str = "abc@yahoo.com,123@cnn.com,abc@google.com";
Matcher m = p.matcher(str);
}
}
匹配器的以下方法执行匹配。
- find() method
- start() method
- end() method
- group() method
find()方法
find()方法找到输入中的模式的匹配。
如果find成功,它返回true。否则,它返回false。
第一次调用 find()在输入的开始处开始搜索。下一个调用将在上一次匹配后开始搜索。
我们可以使用while循环与 find()方法来查找所有的匹配。
find()方法是一个重载的方法。find()方法的另一个版本接受一个整数参数,这是开始查找匹配的偏移量。
start()方法
find()方法返回上一次匹配的开始索引。 它在成功的find()方法调用之后使用。
end()方法
end()方法返回匹配字符串中最后一个字符的索引加一。
匹配后, str.substring(m.start(),m.end())给出匹配的字符串。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String regex = "[a-z]@.";
Pattern p = Pattern.compile(regex);
String str = "abc@yahoo.com,123@cnn.com,abc@google.com";
Matcher m = p.matcher(str);
if (m.find()) {
String foundStr = str.substring(m.start(), m.end());
System.out.println("Found string is:" + foundStr);
}
}
}
上面的代码生成以下结果。
group()方法
group()方法通过前一个成功的find()方法调用返回找到的字符串。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String regex = "[a-z]@.";
Pattern p = Pattern.compile(regex);
String str = "abc@yahoo.com,123@cnn.com,abc@google.com";
Matcher m = p.matcher(str);
if (m.find()) {
String foundStr = m.group();
System.out.println("Found text is:" + foundStr);
}
}
}
上面的代码生成以下结果。
例子
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
String regex = "[abc]@.";
String source = "abc@example.com";
findPattern(regex, source);
}
public static void findPattern(String regex, String source) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(source);
System.out.println("Regex:" + regex);
System.out.println("Text:" + source);
while (m.find()) {
System.out.println("Matched Text:" + m.group() + ", Start:" + m.start()
+ ", " + "End:" + m.end());
}
}
}
上面的代码生成以下结果。


国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码













