//正则表达式(regular expression)
/*
split
matches
replaceAll
*/
/**
* 是一种验证规则,用来判断字符串是否符合某种特定格式:
*
* 手机号/邮箱......
*/
/*
* 常见的正则的规则:
* [0-9]:用来匹配一个数字 简写方式:\d
* [a-z]:用来匹配一个小写英文字母
* [A-Z]:用来匹配一个大写英文字母
* [\u4e00-\u952f]用来匹配一个汉字
* [135]1或3或5
* [1ab]1或a或b
* [0-9a-zA-Z]匹配数字+大小写英文
* [0-9a-zA-Z_] 单词字符简写方式:\w
*
*
*
* 原始字符串.matches(正则)
* 返回boolean型,表示原始字符串与正则表达式是否匹配
*
* [^0-9] 用来匹配一个非数字 简写方式:\D
* [^a-z] 除了a-z 以外其他字符
* [^a-zA-Z0-9_]非单词字符 简写方式:\W
* 空白字符 空格 \t 简写方式:\s
*
*
* 量词:
* {m,n} m表示最少出现的次数,n表示说最多出现的次数
* {k} 恰好出现k次
* {m,} 最少出现m次
* {,n} 最多出现n次
* {0,} 出现0到无穷次 简写方式:*
* {1,} 出现1到无穷次 简写方式:+
* {0,1} 可以出现1次或不出现 简写方式:?
*
*
* 正则表达式:
* . :正则的小数点:表示匹配任意一个字符 真正的小数点:\.
*
* 验证邮箱地址:xxxxxxx@xxxxxx.xxx
* \w+@\w+\.\w+ //邮箱地址简单写法,后面改进
*/
public class TestRegular {
public static void main(String[] args) {
/*
* 原始字符串进行拆分:
* 原始字符串.split("正则")
*
* 根据正则表达式,将原始字符串按正则表达式进行拆分
*
* 例:"aaa.bbb.ccc.ddd".split(",");
* ==>返回字符串数组String[]{"aaa","bbb","ccc","ddd"}
*
*
*
*/
System.out.println("a".matches("[0-9]"));//false
System.out.println("1".matches("[0-9]"));//true
//正则表达式中的 \ 在java中需要写为 \\
System.out.println("1".matches("\\d"));//注意java转义字符//\true
System.out.println("2".matches("[135]"));//false
System.out.println("吃".matches("[\u4e00-\u952f]"));//汉字不需要\\,\\u即可
System.out.println("严".matches("[\u4e00-\u4e0f]"));
//验证单词字符
System.out.println("@".matches("[\\w]"));//false
System.out.println("_".matches("[\\w]"));//true
//验证取反
System.out.println("2".matches("[^0-9]"));
System.out.println("a".matches("[^0-9]"));
//空白字符
System.out.println(" ".matches("\\s"));
System.out.println("\t".matches("\\s"));
//{m,n}量词
System.out.println("123456".matches("[0-9]{11,11}"));
System.out.println("123456".matches("[0-9]{11}"));
System.out.println("13812345678".matches("[0-9]{11,11}"));
//验证邮箱
System.out.println("aaaa3333@cc".matches("\\w+@\\w+\\.\\w+"));
System.out.println("aaa@sjafd.coda".matches("\\w+@\\w+\\.\\w+"));
//abc 出现1到多次
//()叫做分组,把括号内的内容作为一个整体来看待
String str1 = "abcabcabc";
str1.matches("abc+");
System.out.println(str1.matches("abc+"));//错误的正则,+只影响到c
System.out.println(str1.matches("(abc)+"));//正确
//abc 或 def 出现1到多次,| 代表组内或者关系
System.out.println("defdef".matches("(abc|def)+"));
}
}
正则表达式(regular expression)
最新推荐文章于 2024-04-25 23:56:41 发布