浙江振升建设有限公司网站,wordpress部署ssl,山东省两学一做网站,如何建立公司网站推广系列文章目录 文章目录 系列文章目录一、先爽一下正则表达式不使用正则的情况下使用正则的情况下 二、正则表达式的作用三、正则表达式具体表达1、规则2、字符类示例3、预定义字符示例首先学习转义字符 示例练习 四、基本练习1、快捷方法#xff1a;2、验证手机号3、验证座机电…系列文章目录 文章目录 系列文章目录一、先爽一下正则表达式不使用正则的情况下使用正则的情况下 二、正则表达式的作用三、正则表达式具体表达1、规则2、字符类示例3、预定义字符示例首先学习转义字符 示例练习 四、基本练习1、快捷方法2、验证手机号3、验证座机电话号码4、验证邮箱号码 五、正则表达式小结 一、先爽一下正则表达式
正则表达式可以校验字符串是否满足一定的规则并用来校验数据格式的合法性。 需求:假如现在要求校验一个g9号码是否正确。 规则:6位及20位之内0不能在开头必须全部是数字 先使用目前所学知识完成校验需求 然后体验一下正则表达式检验。
不使用正则的情况下
public class Test {public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.nextLine();System.out.println(check(str));}public static boolean check(String str){if(str.length()6 || str.length()20){return false;}if(str.charAt(0)0){return false;}for (int i 0; i str.length(); i) {if(str.charAt(i)0||str.charAt(i)9){return false;}}return true;}}使用正则的情况下
String qq 1234567890;
System.out.println(qq.matches([1-9]\\d{5,19}));二、正则表达式的作用
作用一:校验字符串是否满足规则作用二:在一段文本中查找满足要求的内容
三、正则表达式具体表达
1、规则 通过查看参考文档找到
2、字符类示例 public static void main(String[] args) {//public boolean matches(String regex):判断是否与正则表达式匹配匹配返回true// 只能是a b cSystem.out.println(-----------1-------------);System.out.println(a.matches([abc])); // trueSystem.out.println(z.matches([abc])); // falseSystem.out.println(ab.matches([abc])); // falseSystem.out.println(ab.matches([abc][abc])); // true// 不能出现a b cSystem.out.println(-----------2-------------);System.out.println(a.matches([^abc])); // falseSystem.out.println(z.matches([^abc])); // trueSystem.out.println(zz.matches([^abc])); //falseSystem.out.println(zz.matches([^abc][^abc])); //true// a到zA到Z(包括头尾的范围)System.out.println(-----------3-------------);System.out.println(a.matches([a-zA-z])); // trueSystem.out.println(z.matches([a-zA-z])); // trueSystem.out.println(aa.matches([a-zA-z]));//falseSystem.out.println(zz.matches([a-zA-Z])); //falseSystem.out.println(zz.matches([a-zA-Z][a-zA-Z])); //trueSystem.out.println(0.matches([a-zA-Z]));//falseSystem.out.println(0.matches([a-zA-Z0-9]));//true// [a-d[m-p]] a到d或m到pSystem.out.println(-----------4-------------);System.out.println(a.matches([a-d[m-p]]));//trueSystem.out.println(d.matches([a-d[m-p]])); //trueSystem.out.println(m.matches([a-d[m-p]])); //trueSystem.out.println(p.matches([a-d[m-p]])); //trueSystem.out.println(e.matches([a-d[m-p]])); //falseSystem.out.println(0.matches([a-d[m-p]])); //false// [a-z[def]] a-z和def的交集。为:defSystem.out.println(----------5------------);System.out.println(a.matches([a-z[def]])); //falseSystem.out.println(d.matches([a-z[def]])); //trueSystem.out.println(0.matches([a-z[def]])); //false// [a-z[^bc]] a-z和非bc的交集。(等同于[ad-z])System.out.println(-----------6------------_);System.out.println(a.matches([a-z[^bc]]));//trueSystem.out.println(b.matches([a-z[^bc]])); //falseSystem.out.println(0.matches([a-z[^bc]])); //false// [a-z[^m-p]] a到z和除了m到p的交集。(等同于[a-1q-z])System.out.println(-----------7-------------);System.out.println(a.matches([a-z[^m-p]])); //trueSystem.out.println(m.matches([a-z[^m-p]])); //falseSystem.out.println(0.matches([a-z[^m-p]])); //false}3、预定义字符示例
首先学习转义字符
\ 是转义字符 改变后面那个字符原本的含义 练习:以字符串的形式打印一个双引号 在Java中表示字符串的开头或者结尾
//此时\表示转义字符改变了后面那个双引号原本的含义
//把他变成了一个普普通通的双引号而已。
System.out.println(\);我们经常碰见在书写路径时需要加双斜杠而不能是单斜杠。
// \表示转义字符
//两个\的理解方式前面的\是一个转义字符改变了后面\原本的含义把他变成一个普普通通的\而已。
System.out.println(c:Users\\moon\\IdeaProjects\\basic-code\\myapi\\src\\com\\itheima\\a08regexdemo\\RegexDemo1.java);示例练习
//.表示任意一个字符
System.out.println(你.matches(..)); //false
System.out.println(你.matches(.)); //true
System.out.println(你a.matches(..));//true// \\d 表示任意的一个数字
// \\d只能是任意的一位数字
// 简单来记:两个\表示一个\
System.out.println(a.matches(\\d)); // false
System.out.println(3.matches(\\d)); // true
System.out.println(333.matches(\\d)); // false//\\w只能是一位单词字符[a-zA-Z_0-9]
System.out.println(z.matches(\\w)); // true
System.out.println(2.matches(\\w)); // true
System.out.println(21.matches(\\w)); // false
System.out.println(你.matches(\\w));//false// 非单词字符
System.out.println(你.matches(\\W)); // true
System.out.println(---------------------------------------------);
// 以上正则匹配只能校验单个字符。// 必须是数字 字母 下划线 至少 6位
System.out.println(2442fsfsf.matches(\\w{6,}));//true
System.out.println(244f.matches(\\w{6,}));//false// 必须是数字和字符 必须是4位
System.out.println(23dF.matches([a-zA-Z0-9]{4}));//true
System.out.println(23 F.matches([a-zA-Z0-9]{4}));//false
System.out.println(23dF.matches([\\w[^_]]{4}));//true
System.out.println(23_F.matches([\\w[^_]]{4}));//false四、基本练习
1、快捷方法
安装any-rule插件如下图所示 之后点击右键即可发现多了一个AnyRule选项选择后可进行快速填写正则表达式。
2、验证手机号 /*需求请编写正则表达式验证用户输入的手机号码是否满足要求。请编写正则表达式验证用户输入的邮箱号是否满足要求。请编写正则表达式验证用户输入的电话号码是否满足要求。验证手机号码 13112345678 13712345667 13945679027 139456790271验证座机电话号码 020-2324242 02122442 027-42424 0712-3242434验证邮箱号码 3232323qq.com zhangsanitcast.cnn dlei0009163.com dlei0009pci.com.cn*///心得://拿着一个正确的数据从左到右依次去写。//13112345678//分成三部分://第一部分:1 表示手机号码只能以1开头//第二部分:[3-9] 表示手机号码第二位只能是3-9之间的//第三部分:\\d{9} 表示任意数字可以出现9次也只能出现9次String regex1 1[3-9]\\d{9};System.out.println(13112345678.matches(regex1));//trueSystem.out.println(13712345667.matches(regex1));//trueSystem.out.println(13945679027.matches(regex1));//trueSystem.out.println(139456790271.matches(regex1));//false3、验证座机电话号码
//座机电话号码//020-2324242 02122442 027-42424 0712-3242434//思路://在书写座机号正则的时候需要把正确的数据分为三部分//一:区号\\d{2,3}// 0:表示区号一定是以0开头的// \\d{2,3}:表示区号从第二位开始可以是任意的数字可以出现2到3次。//二:- ?表示次数日次或一次//三:号码 号码的第一位也不能以日开头从第二位开始可以是任意的数字号码的总长度:5-10位String regex2 0\\d{2,3}-?[1-9]\\d{4,9};System.out.println(020-2324242.matches(regex2));System.out.println(02122442.matches(regex2));System.out.println(027-42424.matches(regex2));System.out.println(0712-3242434.matches(regex2));4、验证邮箱号码
//3232323qq.com zhangsanitcast.cnn dlei0009163.com dlei0009pci.com.cn//思路://在书写邮箱号码正则的时候需要把正确的数据分为三部分//第一部分:的左边 \\w// 任意的字母数字下划线至少出现一次就可以了//第二部分: 只能出现一次//第三部分:// 3.1 .的左边[\\w[^_]]{2,6}// 任意的字母加数字总共出现2-6次(此时不能出现下划线)// 3.2 . \\.// 3.3 大写字母小写字母都可以只能出现2-3次[a-zA-Z]{2,3}// 我们可以把3.2和3.3看成一组这一组可以出现1次或者两次String regex3 \\w[\\w[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2};System.out.println(3232323qq.com.matches(regex3));System.out.println(zhangsanitcast.cnn.matches(regex3));System.out.println(dlei0009163.com.matches(regex3));System.out.println(dlei0009pci.com.cn.matches(regex3));
五、正则表达式小结