当前位置: 首页 > news >正文

网站做百度权重排名论坛国外设计案例网站

网站做百度权重排名论坛,国外设计案例网站,浅笑云主机,百度seo营销公司正则表达式 接下来#xff0c;我们学习一个全新的知识#xff0c;叫做正则表达式。正则表达式其实是由一些特殊的符号组成的#xff0c;它代表的是某种规则。 正则表达式的作用1#xff1a;用来校验字符串数据是否合法 正则表达式的作用2#xff1a;可以从一段文本中查找…正则表达式 接下来我们学习一个全新的知识叫做正则表达式。正则表达式其实是由一些特殊的符号组成的它代表的是某种规则。 正则表达式的作用1用来校验字符串数据是否合法 正则表达式的作用2可以从一段文本中查找满足要求的内容 1.1 正则表达式初体验 现在我们就以QQ号码为例来体验一下正则表达式的用法。注意现在仅仅只是体验而已我们还没有讲正则表达式的具体写法。 不使用正则表达式校验QQ号码代码是这样的 //目标:体验一下使用正则表达式来校验数据格式的合法性。 //需求:校验QQ号码是否正确要求全部是数字长度是(6-20之间不能以0开头。public static boolean checkQQ(String qq){// 1、判断qq号码是否为nullif(qq null || qq.startsWith(0) || qq.length() 6 || qq.length() 20){return false;}// 2、qq至少是不是null,不是以0开头的满足6-20之间的长度。// 判断qq号码中是否都是数字。// qq 2514ghd234for (int i 0; i qq.length(); i) {// 根据索引提取当前位置处的字符。char ch qq.charAt(i);// 判断ch记住的字符如果不是数字qq号码不合法。if(ch 0 || ch 9){return false;}}// 3、说明qq号码肯定是合法return true;}用正则表达式代码是这样的 public static boolean checkQQ1(String qq){return qq ! null qq.matches([1-9]\\d{5,19});//QQ号第一位和[1-9匹配],‘\\d’代表全部是数字,后面的位数和{519}进行匹配 }我们发现使用正则表达式大大简化的了代码的写法。这个代码现在不用写体验到正则表达式的优势就可以了。 1.2 正则表达式书写规则 前面我们已经体验到了正则表达式可以简化校验数据的代码书写。这里需要用到一个方法叫matches(String regex)。这个方法时属于String类的方法。 这个方法是用来匹配一个字符串是否匹配正则表达式的规则参数需要调用者传递一个正则表达式。但是正则表达式不能乱写是有特定的规则的。 下面我们就学习一下正则表达式的规则。从哪里学呢在API中有一个类叫做Pattern我们可以到API文档中搜索关于正则表达式的规则这个类都告诉我们了。这里把常用的整理好了。 我们将这些规则在代码中演示一下 /*** 目标掌握正则表达式的书写规则*/ public class RegexTest2 {public static void main(String[] args) {// 1、字符类(只能匹配单个字符)System.out.println(a.matches([abc])); // [abc]只能匹配a、b、cSystem.out.println(e.matches([abcd])); // falseSystem.out.println(d.matches([^abc])); // [^abc] 不能是abcSystem.out.println(a.matches([^abc])); // falseSystem.out.println(b.matches([a-zA-Z])); // [a-zA-Z] 只能是a-z A-Z的字符System.out.println(2.matches([a-zA-Z])); // falseSystem.out.println(k.matches([a-z[^bc]])); // a到z除了b和cSystem.out.println(b.matches([a-z[^bc]])); // falseSystem.out.println(ab.matches([a-zA-Z0-9])); // false 注意以上带 [内容] 的规则都只能用于匹配单个字符// 2、预定义字符(只能匹配单个字符) . \d \D \s \S \w \WSystem.out.println(徐.matches(.)); // .可以匹配任意字符System.out.println(徐徐.matches(.)); // false// \转义System.out.println(\);// \n \tSystem.out.println(3.matches(\\d)); // \d: 0-9System.out.println(a.matches(\\d)); //falseSystem.out.println( .matches(\\s)); // \s: 代表一个空白字符System.out.println(a.matches(\s)); // falseSystem.out.println(a.matches(\\S)); // \S: 代表一个非空白字符System.out.println( .matches(\\S)); // falseSystem.out.println(a.matches(\\w)); // \w: [a-zA-Z_0-9]System.out.println(_.matches(\\w)); // trueSystem.out.println(徐.matches(\\w)); // falseSystem.out.println(徐.matches(\\W)); // [^\w]不能是a-zA-Z_0-9System.out.println(a.matches(\\W)); // falseSystem.out.println(23232.matches(\\d)); // false 注意以上预定义字符都只能匹配单个字符。// 3、数量词 ? * {n} {n, } {n, m}System.out.println(a.matches(\\w?)); // ? 代表0次或1次System.out.println(.matches(\\w?)); // trueSystem.out.println(abc.matches(\\w?)); // falseSystem.out.println(abc12.matches(\\w*)); // * 代表0次或多次System.out.println(.matches(\\w*)); // trueSystem.out.println(abc12张.matches(\\w*)); // falseSystem.out.println(abc12.matches(\\w)); // 代表1次或多次System.out.println(.matches(\\w)); // falseSystem.out.println(abc12张.matches(\\w)); // falseSystem.out.println(a3c.matches(\\w{3})); // {3} 代表要正好是n次System.out.println(abcd.matches(\\w{3})); // falseSystem.out.println(abcd.matches(\\w{3,})); // {3,} 代表是3次System.out.println(ab.matches(\\w{3,})); // falseSystem.out.println(abcde徐.matches(\\w{3,})); // falseSystem.out.println(abc232d.matches(\\w{3,9})); // {3, 9} 代表是 大于等于3次小于等于9次// 4、其他几个常用的符号(?i)忽略大小写 、 或| 、 分组()System.out.println(abc.matches((?i)abc)); // trueSystem.out.println(ABC.matches((?i)abc)); // trueSystem.out.println(aBc.matches(a((?i)b)c)); // trueSystem.out.println(ABc.matches(a((?i)b)c)); // false// 需求1要求要么是3个小写字母要么是3个数字。System.out.println(abc.matches([a-z]{3}|\\d{3})); // trueSystem.out.println(ABC.matches([a-z]{3}|\\d{3})); // falseSystem.out.println(123.matches([a-z]{3}|\\d{3})); // trueSystem.out.println(A12.matches([a-z]{3}|\\d{3})); // false// 需求2必须是”我爱“开头中间可以是至少一个”编程“最后至少是1个”666“System.out.println(我爱编程编程666666.matches(我爱(编程)(666)));System.out.println(我爱编程编程66666.matches(我爱(编程)(666)));} }1.3 正则表达式应用案例 学习完正则表达式的规则之后接下来我们再利用正则表达式去校验几个实际案例。 正则表达式校验手机号码 /*** 目标校验用户输入的电话、邮箱、时间是否合法。*/ public class RegexTest3 {public static void main(String[] args) {checkPhone();}public static void checkPhone(){while (true) {System.out.println(请您输入您的电话号码(手机|座机): );Scanner sc new Scanner(System.in);String phone sc.nextLine();// 18676769999 010-3424242424 0104644535if(phone.matches((1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19}))){/*(1[3-9]\\d{9})手机号码第一位是1第二位是3-9的其中一个数字后9位是任意数字(0\\d{2,7}-?[1-9]\\d{4,19})这个正则表达式主要用于匹配电话号码。让我们逐步解释它的各个部分 1.(0\\d{2,7}: 这一部分匹配以0开头的数字后面可以跟2到7位的数字。 2.-?: 这一部分匹配一个可选的连字符减号表示电话号码中可以有或没有连字符。 3.[1-9]: 这一部分匹配一个数字但排除了0因为电话号码的开头一般不以0开头。 4.\\d{4,19}: 这一部分匹配4到19位的数字表示电话号码的主体部分不包括开头的0。整个正则表达式的含义是匹配以0开头后面跟2到7位数字然后可以有一个可选的连字符接着是一个非零数字最后是4到19位的数字。这符合一般电话号码的格式但需要注意的是这只是一个基本的匹配模式实际上电话号码的格式因国家和地区而异可能有更复杂的规则。*/System.out.println(您输入的号码格式正确~~~);break;}else {System.out.println(您输入的号码格式不正确~~~);}}} }在正则表达式中\ \w 表示匹配任何字母、数字或下划线。具体而言它等效于字符类 [a-zA-Z0-9_]。这包括 1.a-z: 小写字母 2.A-Z: 大写字母 3.0-9: 数字 4._: 下划线 所以当你在正则表达式中看到 \ \w 时它表示可以匹配任意字母、数字或下划线的字符。 \ \w{2,}\ \w{2,20}(\ .\ \w{2,10}){1,2}这个正则表达式用于匹配电子邮件地址的一般格式。让我们逐步解释它的各个部分 1.\ \w{2,}: 这部分匹配至少包含两个字母、数字或下划线的字符并且后面跟着一个 符号。 2.\ \w{2,20}: 这部分匹配包含两到二十个字母、数字或下划线的字符代表电子邮件地址中的域名部分。 3.(\ .\ \w{2,10}){1,2}: 这一部分包含了一个或两个域名后缀以点号 . 开头后跟两到十个字母、数字或下划线的字符。整个部分放在括号内并且带有 {1,2} 的量词表示这个模式可以出现一次或两次用来匹配邮件地址中的域名后缀如.com、.net、.org等。 因此这个正则表达式用于匹配符合一般电子邮件地址格式的字符串包括 符号前后的字符、域名部分和域名后缀。但需要注意的是这只是一个基本的模式实际上电子邮件地址的格式可能更复杂也可能受到特定邮件服务器或应用程序的要求限制。 使用正则表达式校验邮箱是否正确 public class RegexTest3 {public static void main(String[] args) {checkEmail();}public static void checkEmail(){while (true) {System.out.println(请您输入您的邮箱 );Scanner sc new Scanner(System.in);String email sc.nextLine();/*** dlei0009163.com* 25143242qq.com* itheimaitcast.com.cn*/if(email.matches(\\w{2,}\\w{2,20}(\\.\\w{2,10}){1,2})){System.out.println(您输入的邮箱格式正确~~~);break;}else {System.out.println(您输入的邮箱格式不正确~~~);}}} } 1.4 正则表达式信息爬取 正则表达式的作用之一用来校验数据格式的正确性。正则表达式的第二个作用在一段文本中查找满足要求的内容 /*** 目标掌握使用正则表达式查找内容。*/ public class RegexTest4 {public static void main(String[] args) {method1();}// 需求1从以下内容中爬取出手机邮箱座机、400电话等信息。public static void method1(){String data 来黑马程序员学习Java\n 电话186666888818699997777\n 或者联系邮箱boniuitcast.cn\n 座机电话01036517895010-98951256\n 邮箱bozaiitcast.cn\n 邮箱dlei0009163.com\n 热线电话400-618-9090 400-618-400040061840004006189090;// 1、定义爬取规则String regex (1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})|(\\w{2,}\\w{2,20}(\\.\\w{2,10}){1,2}) |(400-?\\d{3,7}-?\\d{3,7});// 2、把正则表达式封装成一个Pattern对象Pattern pattern Pattern.compile(regex);// 3、通过pattern对象去获取查找内容的匹配器对象。Matcher matcher pattern.matcher(data);// 4、定义一个循环开始爬取信息while (matcher.find()){String rs matcher.group(); // 获取到了找到的内容了。System.out.println(rs);}} }1.5 正则表达式搜索、替换 接下来我们学习一下正则表达式的另外两个功能替换、分割的功能。需要注意的是这几个功能需要用到Stirng类中的方法。这两个方法其实我们之前学过只是当时没有学正则表达式而已。 /*** 目标掌握使用正则表达式做搜索替换内容分割。*/ public class RegexTest5 {public static void main(String[] args) {// 1、public String replaceAll(String regex , String newStr)按照正则表达式匹配的内容进行替换// 需求1请把下面字符串中的不是汉字的部分替换为 “-”String s1 古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴;System.out.println(s1.replaceAll(\\w, -));// 需求2(拓展)某语音系统收到一个口吃的人说的“我我我喜欢编编编编编编编编编编编编程程程”需要优化成“我喜欢编程”。String s2 我我我喜欢编编编编编编编编编编编编程程程;System.out.println(s2.replaceAll((.)\\1, $1));// 2、public String[] split(String regex)按照正则表达式匹配的内容进行分割字符串反回一个字符串数组。// 需求1请把下面字符串中的人名取出来使用切割来做String s3 古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴;String[] names s3.split(\\w);System.out.println(Arrays.toString(names));} }
http://wiki.neutronadmin.com/news/371575/

相关文章:

  • 涟源网站建设四川省住房建设厅网站打不开
  • 展会网站建设 服务器选择很重要众v创业营网站建设
  • 安徽网站制作网络推广引流是什么意思
  • 做淘宝客建网站要多少费用公司网站建设网站
  • 网站优化 kps上海人才网招聘网最新招聘
  • 上海php网站建设在线视频网站开发方案php
  • 网站建设费怎么写会计科目对网站建设有什么样好的建设意见
  • wordpress企业站主题哪个好网页游戏开服表最全
  • 淘宝优惠劵网站怎么做wordpress 微信 主题制作
  • 网站建设案例信息地方门户类网站
  • 重庆网站建设-首选云慧通代理记账网站模板
  • 盐城网站建设咨询凡科门店通怎么样
  • 电子商务网站建设与管理读后感个人养老金制度9月底前亮相
  • 企业类网站模版扬子市建设局网站
  • 公司建设网站申请报告江西网站开发多少钱
  • 网站收录很好没排名菏泽网站建设电话
  • 微网站建设难不难做外贸soho 需要有网站吗
  • 海口哪里做网站公司网站备案 如何填
  • 咸阳做网站的公司电话做网站有流量就有收入吗
  • 网站专题效果图怎么做电子商务有限责任公司网站怎样建立
  • 珠海网站建设解决方案合肥网站建设案例
  • 东莞网站建设的收费网站开发作用
  • 网站建设的针对对象做网站口碑比较好的大公司
  • 淘宝做网站价格长沙微网站
  • 为什么打开网站是建设中阿里云建站可不可以备案
  • 响应式网站开发需要的条件营业推广的方式
  • 网页设计具体方案网站栏目结构优化
  • 克隆网站后怎么做哪里有建设银行
  • 网站怎么做百度权重做网站找哪个平台好
  • 网站建设需要照片吗自己建设网站要花多少钱