实例1:简单匹配字符串
package regex;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class MatcherDemo {
private static final String REGEX = "\\bdog\\b"; // "\b“表示边界
private static final String INPUT = "dog dog dog doggie dogg";
public static void main(String[] args) {
//检查字符串里面有多少个dog
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT);
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());
m.start(count);
}
}
}
实例2:部分匹配和全部匹配
package regex;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class MatchesLooking {
private static final String REGEX = "foo";
private static final String INPUT ="foo-foa-foo";
private static Pattern p;
private static Matcher m;
public static void main(String[] args) {
// Initialize
p = Pattern.compile(REGEX);
m = p.matcher(INPUT);
System.out.println("Current REGEX is: "+ REGEX);
System.out.println("Current INPUT is: "+ INPUT);
System.out.println("lookingAt(): "
+m .lookingAt()); //部分匹配
System.out.println("matches(): "
+ m.matches()); //完全匹配
}
}
实例3:替换指定字符串
package regex;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexDemo {
private static String REGEX = "a*b"; //*表示限定前面的a可以有0或者多个。
private static String INPUT = "aabfooaabfooabfoobcdd";
private static String REPLACE = "-";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
StringBuffer sb = new StringBuffer();
//全部替换
// int count = 0;
while(m.find()){
//用REPLACE中的字符串进行替换,再将替换的结果放到sb变量中
m.appendReplacement(sb,REPLACE);
// count++;
}
//将最后的尾巴字符串附加上
m.appendTail(sb);
System.out.println(sb.toString());
}
}
实例4:替换指定字符串:repalceAll
package regex;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class ReplaceDemo2 {
private static String REGEX = "a*b"; //*表示限定前面的a可以有0或者多个。
private static String INPUT =
"aabfooaabfooabfoob";
private static String REPLACE = "-";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
// get a matcher object
Matcher m = p.matcher(INPUT);
INPUT = m.replaceAll(REPLACE);
System.out.println(INPUT);
}
}