正则表达式
所谓正则表达式,就是一个可以匹配N个字符串的字符串模板
正则表达式是一个非常强大的字符串模板
在一般的命令行里面,经常使用a*来表示字符串模板
正则表达式支持的通配符:
. 可以匹配任意字符
\s 代表任意一个空白(空格,tab) space
\S 代表任意一个非空白
\d 代表任意一个数字 digital
\D 代表任意一个非数字
\w 代表一个单词字符
\W 代表任意一个非单词字符
string 中正则表达式有关的方法
matches( String regex ) 判断字符串是否匹配
public class TEST4 {
public static void main(String[] args) {
System.out.println("123".matches("\\d\\d\\d"));
System.out.println("crazyit.org".replaceAll("\\.","?"));
System.out.println("crazyit.org".replaceAll("\\w","?"));
}
}
还有 replaceFirst 换第一个
split 分割函数
import java.lang.reflect.Array;
import java.util.Arrays;
public class TEST{
public static void main(String[] args) {
// String str = "abc.xyz.def" ;
// System.out.println(Arrays.toString(str.split("\\.")));
String arr = "abc?www?kkk$" ;
System.out.println(Arrays.toString(arr.split("\\w")));
}
}
方括号表达式
枚举:【ax中】 表示a或x或中 期中任意一个字符
范围:【a-f】 表示a到f中的任意一个字符
范围与枚举并存:【a-f5-7】 表示a到f中和5到7中任意一个字符
表示求否:【^a-f】 不是a到f中的任意一个字符
表示求交:【a-g && 【^b-d】】 只要不是a e f g 字符的任意一个字符
表示出现次数的 “副词,不能独立使用”
? 表示他前面的东西可以出现0-1次
* 表示他前面的东西可以出现0-n次
+ 表示他前面的东西可以出现1-n次
{n,m} 表示他前面的东西可以出现n-m次
{,m} 表示他前面的东西最多出现m次
{n,} 表示他前面的东西必须要出现n次
public class TEST4{
public static void main(String[] args) {
System.out.println("020-22435344".matches("020-\\d{8}"));
}
}
public class TEST4{
public static void main(String[] args) {
String IdNumber = "42092320020406041X" ;
System.out.println( IdNumber.matches("\\d{18}")
|| IdNumber.matches("\\d{17}X"));
}
}
特殊字符:
(使用的时候需要加\进行转义)
()
【】
{}
? 频率
# 频率
+ 频率
^ 代表一行的开头
$ 代表一行的结尾
\n 换行
\t 制表符
\r 回车