哎呀妈呀,脑瓜疼----正则表达式
正则是用来处理复杂文本类型的
标准字符集合:
\d --->代表0-9任意一个数字 \D ---->除了数字之外的任意字符 \w ----->字母(大小写)数字,下划线全匹配 \W ----->除了字母数字下划线之外的所有字符 \s ----->空格,换行,制表符 \S ----->除了空格换行制表符之外的所有字符 . ----->匹配任意字符除了换行符
自定义字符集合(***)
使用[] 的匹配方式,匹配[]内的字符, 在[] 内使用 ^ 表示取反 - 表示从哪到哪区间
[qp3@] ----->匹配 q 或者 p 或者3 或者@的字符 [a-f] ------>匹配a-f之间的字符 [^a-v0-7]---->匹配除了a-v 0-7之间的字符
量词使用:修饰匹配次数的特殊符号
{n} ---->表达式重复n 次 \d{6}: 匹配6位数字 {\d\d}{6}:匹配12位数字 {m,n} ---->表达式至少重复m次,最多重复n次 是贪婪模式,如果有 n次会一直往上追加n次 {m,n}? -----> 最多重复m次,非贪婪模式 {m,} ------->至少m次,m+都算 ? --------->匹配表达式0次或者一次 相当于{0,1} a/d?b :匹配 ab a5b + ---------->至少一次 相当于{1,} a/d+b :匹配 a2b a34b * ---------->都要相当于{0,}
字符边界:是位置,不是字符
^ ------>字符开始的地方 ^o:以o开始的字符串 $ ------>字符串结束的地方 o$ :以o结束的字符串 \b ------>不全是/w的表示 qw\b : 只会配置这种 qw 123qw
手机号码匹配
1[358]\b{9} ------1开头,第2位可以是3 .5.8 其他9位数字
邮箱匹配
[\w\-]+@[a-zA-Z0-9]+(\.[A-Za-z]{2,5}){1,2}
常用的正则匹配
java 使用正则:
使用到 java.util包下的 Pattern 创建正则表达式 以及Matcher 两个对象
Pattern p= Pattern.compile("\\d"); //创建正则表达式
Matchr m =p.matcher("ddeff34");//需要匹配的正则
while(m.find()){
m.group();//取出
}
原创打造,多多指教