java的正则表达式
在开发过程中常常需要做一些匹配,例如:手机号码,邮箱,非空等等的验证,这个时候正则就大大发挥了用途。什么是正则表达式 ,正则表达式就是用来提供匹配的一个字符串。接下来我们从最基本的慢慢走入正则表达式,解开它的神秘面纱:
原子:
原子就是正则表达式的匹配的最小单位例如:"我 abc \n" 中 '我' 'a'等都是一个原子 ,原子分为可见原子和不可见原子,什么是可见原子和不可见原子呢?很好理解,在敲打键盘的时候,可以在屏幕上输出可见内容的是可见原子像中文,英文字母,标点符号等等,像换行符,和enter符这些就是不可见原子。
界定符:
界定符是对原子进行筛选的特殊符号
元子符: -[] 匹配方括号中任意一个原子 [234]中会拿出某一个原子去匹配 - [^] 匹配除了方括号中的原子之外的任意字符,[^289] 意思是除了2,8,9都匹配 ^是跟在[后面的,不然就失去效果,成为仅仅一个原子,[34^78]这一样的就是5个原子,而不是4个原子 -[a-k] -这是区间的意思 原子数 = a 到 k - [a-zA-Z0-9] 意思 a到z和A到Z和0到9所有的原子中某一个匹配到就行 原子的集合: - . 匹配除了换行符之外的任意字符 - \d 匹配任意一个十进制数字,即[0-9] - \D 匹配任意一个非十进制数字,即[^0-9] - \s 匹配一个不可见的原子,即[\r\n\f\t\v] - \S 匹配一个除了可见原子的原子,即[^\r\n\f\t\v] - \w 匹配任意一个数字,字母或下划线,即[0-9a-zA-Z_] - \W 匹配任意一个非数字,字母或者下划线,即[^0-9a-zA-Z] /i (忽略大小写) /g (全文查找出现的所有匹配字符) /m (多行查找) /gi(全文查找、忽略大小写) /ig(全文查找、忽略大小写) 量词: {n} :表示其前面的原子恰好出现n次 {n,}: 表示其前面的原子最少出现n次 {n,m}:表示其前面的原子最少出现n次,最多出现m次 * : 匹配最少0 即{0,},任意次 + : 匹配最少1次 ,即{1,} ,最少要出现一次 ?: 匹配0次,或者 1次 ,即{0,1},要么没有要么出现一次
https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin