字符类
[abc] 匹配abc其中一个字符
[^abc]匹配abc以外的任意一个字符
[a-c]代表匹配abc中的任意一个字符 同[abc]
[a-cA-C]匹配小写abc 或者大写ABC
预定义字符
\d 代表0-9
\ D 代表非数字
\w 代表[a-zA-Z_0-9]中的任意一个字符
\W代表匹配除了[a-zA-Z_0-9]以外的任意一个字符
\s代表匹配一个空格
\S代表匹配一个非空格
. 代表匹配任意一个字符
边界词
+匹配1次或者多次
*代表匹配0次或则和多次
{n}匹配N次
{n,}匹配n次以上
{n,m}匹配N-M
?代表匹配0次或者1次
正则匹配matches 替换replaceAll 切割split
package demo01正则表达式;
/*
* 使用正则匹配手机号
*/
public class Demo01 {
public static void main(String[] args) {
// 定义规则
String regex = "1\\d{10}";
// 调用字符串的matches进行匹配
String phone = "13a22223456";
boolean isMatch = phone.matches(regex);
System.out.println(isMatch ? "匹配" : "不匹配");
}
String content = "请联系我13522234567请联系我13622234567请联系我14522234567请联系我18522234567";
分割线 ————————————————————————————————————————————————————————————————————————
// 定义规则
String regex = "1\\d{10}";
// 使用replaceAll方法把手机号码替换成###########
content = content.replaceAll(regex, "###########");
System.out.println(content);
-----------------------------------------------------------------------------
String ip = "192.168.0.100";
// 定义规则
String regex = "\\.";
// 按照ip的一点进行切割
String[] arr = ip.split(regex);
System.out.println("开始打印...");
for (String s : arr) {
System.out.println(s);
}
}