一,正则表达式概述
简单示例:
package com.jackie.day12;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpressionTest {
public static void main(String[] args) {
firstDemo();
// secondDemo();
//thirdDemo();
//System.out.println(testPhoneNumber("13927470685"));
}
// 查找字符串中"java"出现的次数
private static void firstDemo() {
String str = "JAVAhellojava javahello ,Javahahajava";
// 把正则模式字符串编译成正则模式对象,忽略大小写
Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
// 用这个模式串作用于目标字符串上,返回一个匹配器对象
Matcher matcher = p.matcher(str);
// 使用匹配器来完成业务
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println(count);
}
// 查找字符串中"中文字符"出现的次数
private static void secondDemo() {
String str = "12hello你,我87java,android,58酒";
Pattern p = Pattern.compile("[\u4E00-\u9fa5]");
Matcher matcher = p.matcher(str);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println(count);
}
// 把字符串中"中文字符"替换成"*"
private static void thirdDemo() {
String str = "12hello你,我87java,android,58酒";
Pattern p = Pattern.compile("[\u4E00-\u9fa5]");
Matcher matcher = p.matcher(str);
String result = matcher.replaceAll("*");
System.out.println(result);
}
//判断传过来的数字是不是手机号码
private static boolean testPhoneNumber (String phoneNumber){
Pattern p = Pattern.compile("1[3578][0-9]{9}");
Matcher matcher = p.matcher(phoneNumber);
return matcher.matches();
}
}
二,正则表达式语法
1,限定符
2,选择匹配符
3,特殊字符
4,字符匹配符
字符集合:就是用[ ]括起来的多个字符。如果里面有元字符,也要当成普通字符。
5,定位符
6,分组组合符
7,其他