package en.iteast.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GetTest {
public static void main(String[] args) {
getDemo();
}
public static void getDemo() {
/*
* 需求:将符合规则的内容取出来
* 用到正则表达式对象。java.util.regex.Pattern
*
* 1.将字符串规则封装成Pattern对象。compile(regex);
* 2.通过正则对象获取匹配器对象。用对将正则规则作用到要操作的字符串上。
* 3.通过匹配器对象的方法,对字符串进行操作
* eg:经典用法
* Pattern p = Pattern.compile("a*b");
* Matcher m = p.matcher("aaaaab");
* boolean b = m.matches();
*/
//获取字符串中符合规则的内容
String temp = "sj xcv hjk yu sdjk dgh";
System.out.println(temp);//输出前
//取出3个字母组成的单词
String regex = "\\b[a-zA-Z]{3}\\b";
/*
* \\b[a-zA-Z]{3}\\b说明:
* \b在正则表达式中表示边界(需要转译),
* [z-zA-Z]{3}:连续3个字母
*/
//1.将规则编译成Pattern对象
Pattern p = Pattern.compile(regex);
//2.和字符串关联,获取匹配器对象
Matcher m = p.matcher(temp);
while (m.find()) {//不可省略,因为必须先查找,方可返回所匹配的输入子序列
System.out.println(m.start()+":"+m.group()+":"+m.end());//返回(String)由以前匹配操作所匹配的输入子序列。
//输出后
}
}
}
输出结果
sj xcv hjk yu sdjk dgh
6:xcv:9
10:hjk:13
24:dgh:27