金华网站建设哪家好,如何做微信小程序步骤,网站推广公司水果茶,h5自适应网站源码2.22日学习打卡 目录#xff1a; 2.22日学习打卡正则表达式什么是正则表达式#xff1f;正则表达式的作用正则表达式特点基础语法表格元字符Java 中正则表达式的使用正则表达式语法规则内容限定单个字符限定范围字符限定取反限定 长度限定长度限定符号预定义字符正则表达式的…2.22日学习打卡 目录 2.22日学习打卡正则表达式什么是正则表达式正则表达式的作用正则表达式特点基础语法表格元字符Java 中正则表达式的使用正则表达式语法规则内容限定单个字符限定范围字符限定取反限定 长度限定长度限定符号预定义字符正则表达式的组合定义 常见的正则表达式 正则表达式
什么是正则表达式
正则表达式又称规则表达式。英语Regular Expression在代码中常简写为 regex、regexp 或RE是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式并不仅限于某一种语言但是在每种语言中有细微的差别。
正则表达式的作用
正则表达式是对字符串操作的一种逻辑公式就是用事先定义好的一些特定字符、及这些特定字符的组合组成一个“规则字符串”这个“规则字符串”用来表达对字符串的一种过滤逻辑。使用特殊语法来表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式
正则表达式特点
灵活性、逻辑性和功能性非常的强可以迅速地用极简单的方式达到字符串的复杂控制对于刚接触的人来说比较晦涩难懂
基础语法表格
single char(单字符)quantifiers(数量)position(位置)\d 匹配数字* 0个或者更多^一行的开头\w 匹配word(数字、字母) 1个或更多至少1个$一行的结尾\W 匹配非word(数字、字母)? 0个或1个,一个Optional\b 单词结界(word bounds)\s 匹配white space(包括空格、tab等){min,max}出现次数在一个范围内\S 匹配非white space(包括空格、tab等){n}匹配出现n次的. 匹配任何任何的字符
元字符 正则表达式主要依赖于元字符。元字符不代表他们本身的字面意思他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。 元字符描述、.句号匹配任意单个字符除了换行符。[ ]字符种类。匹配方括号内的任意字符。[^ ]否定的字符种类。匹配除了方括号里的任意字符*匹配0个重复的在*号之前的字符。匹配1个重复的号前的字符。?标记?之前的字符为可选.{n,m}匹配num个大括号之前的字符或字符集 (n num m).(xyz)字符集匹配与 xyz 完全相等的字符串.I或运算符匹配符号前或后的字符.\转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * ? ^ $^从开始行开始匹配.$从末端开始匹配.\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束
Java 中正则表达式的使用
在 Java 中正则表达式为 String 类型被验证的内容同样为 String 类型。通过 String 类中的 matches方法实现内容的匹配校验。如“被验证容”.matches(“正则表达式”)
正则表达式语法规则
正则表达式语法规则[内容限定]{长度限定}
内容限定
在定义限定内容规则时如果没有指定长度限定那么默认长度为 1
单个字符限定
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[a];String contenta;System.out.println(content.matches(regex));}
}
运行结果 true范围字符限定
[a-z0-9]:表示内容可以是 a-z 之间的任意字母或者 0-9 之间的任意数字不分先后。
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[a-z];//a-z(小写输出结果全是true)String contenta;System.out.println(content.matches(regex));String regex2[a-zA-Z];//a-z(无论大小写输出结果全是true)String content1A;System.out.println(content1.matches(regex2));String regex3[a-zA-Z0-9];//a-z(无论大小写输出结果全是true)数字0-9也是trueString content29;System.out.println(content2.matches(regex3));}
}取反限定
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^abc];String contenta;System.out.println(content.matches(regex));}
}
运行结果 false长度限定
在正则表达式中通过{ }来限定内容长度。 固定长度{固定长度值} 范围长度{最小长度值最大长度值} [a-z]{5}表示内容范围为小写字母 a 到 z 且长度必须为 5
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab]{2};String contentc;String content1cc;String content2ccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));}
}
运行结果
false
true
false[a-z]{2,8}表示内容范围为小写字母 a 到 z 且长度在 2 到 8 之间包含 2 与 8
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab]{2,4};String contentc;String content1cc;String content2ccc;String content3ccccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
false
true
true
false[a-z]{2,}表示内容范围为小写字母 a 到 z 且最小长度为 2最大长度无限制
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab]{2,};String contentc;String content1cc;String content2ccc;String content3ccccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
false
true
true
true[a-z]{0,2}表示内容范围为小写字母 a 到 z 且最小长度为 0最大长度为 2
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab]{0,2};String contentc;String content1cc;String content2;String content3ccccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
true
true
true
false
长度限定符号
长度限定符号是指通过预定义符号来完成长度限定。 ?零次或一次。等同于{0,1}
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab]?;//长度只能是0或1String content;String content1c;String content2cc;String content3ccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
true
true
false
false一次或多次。等同于{1,}
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab];//长度不能是0String content;String content1c;String content2cc;String content3ccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
false
true
true
true*零次或多次。等同于{0,}
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex[^ab]*;String content;String content1c;String content2cc;String content3ccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
true
true
true
true预定义字符
在正则表达式中可以通过一些预定义字符来表示内容限定。目的是为了简化内容限定的定义。 常见的预定义字符
\d其他用法与这个类似
package com.jjy;public class RegexTest {public static void main(String[] args) {String regex\\d;String contenta;String content11;String content212;String content3ccc;System.out.println(content.matches(regex));System.out.println(content1.matches(regex));System.out.println(content2.matches(regex));System.out.println(content3.matches(regex));}
}
运行结果
false
true
false
false
正则表达式的组合定义
在正则表达式中可以通过多个内容限定与长度限定来组合定义
示例 必须是以字母开头最少长度为 4,最大长度为 8
[a-z]{1}\\w{3,7}常见的正则表达式
1.检验密码强度 密码的强度必须是包含大小写字母和数字的组合不能使用特殊字符长度在8-10之间。 ^(?.*\\d)(?.*[a-z])(?.*[A-Z]).{8,10}$2.邮箱
([a-z0-9A-Z][-|\\.]?)[a-z0-9A-Z]([a-z0-9A-Z](-[a-z0-9A-Z])?\\.)[a-zA-Z]{2,}3.检验中文 字符串仅能是中文 ^[\\u4e00-\\u9fa5]{0,}$4.校验身份证号码(18位
^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$5.校验日期 “yyyy-mm-dd“ 格式的日期校验已考虑平闰年。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$6.IP 地址
(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)7.URL
http(s)?://([\\w-]\\.)[\\w-](/[\\w- ./?%]*如果我的内容对你有帮助请点赞评论收藏。创作不易大家的支持就是我坚持下去的动力!