东莞建设造价信息网站,python 快速搭建网站,建设厅的证全国通用吗,app小程序定制开发文章目录
一、引入二、Pattern类三、Matcher类四、本地爬虫 1#xff09;第一步#xff1a;获取正则表达式(Pattern)的对象2#xff09;第二步#xff1a;获取文本匹配器的对象3#xff09;完整代码 五、网络数据爬取#xff08;了解#xff09;六、练习
一、引入
正…文章目录一、引入二、Pattern类三、Matcher类四、本地爬虫1第一步获取正则表达式(Pattern)的对象2第二步获取文本匹配器的对象3完整代码五、网络数据爬取了解六、练习一、引入正则表达式有两个作用作用一校验字符串是否满足规则作用二在一段文本中查找满足要求的内容作用一我们已经学习完毕了接下来来学习它的第二个作用这个动作其实也就是我们之前经常听到的两个字爬虫我们可以从一大段网络文字中去爬取我们想要的数据。爬取数据的时候有两种方式本地爬虫和网络爬虫在正式爬取之前需要先知道两个类二、Pattern类它是在java.util.regex包中的这个类就表示正则表达式。因此如果获取到了一个Pattern类的对象相当于就是获取到了一个正则表达式的对象。三、Matcher类它也是java.util.regex包中的这个类就表示文本匹配器它的作用就是按照正则表达式的规则去读取字符串而且是从头开始读取。在读取的时候它会去找符合匹配规则的子串。四、本地爬虫有如下文本请按照要求爬取数据。Java自从95年问世以来经历了很多版本目前企业中用的最多的是Java8和Java11 因为这两个是长期支持版本下一个长期支持版本是Java17相信在未来不久Java17也会逐渐登上历史舞台要求找出里面所有的JavaXX1第一步获取正则表达式(Pattern)的对象Pattern对象不能直接new需要通过compile()静态方法获取在compile()方法中的参数位置就可以去写正则表达式。Pattern.compile(Java\\d{0,2});方法会返回一个Pattern类的对象说白了就是后面这个Java\\d{0,2}正则表达式的对象Pattern p Pattern.compile(Java\\d{0,2});2第二步获取文本匹配器的对象matcher()形参中传入的是需要爬取的文本(字符串)方法返回的是一个文本匹配器的对象。m文本匹配器的对象str需要爬取的文本p规则。因此m要在str中找符合p规则的小串Matcher m p.matcher(str);使用find()方法方法返回值为boolean。该方法会拿着文本匹配器从头开始读取寻找是否有满足规则的子串。如果没有方法返回false如果有方法返回true。在底层它还会去记录子串的起始索引和结束索引 1m.find()光告诉我有没有 / 索引还不行我还得讲里面的数据拿出来才行此时就需要调用group()方法。这个方法的底层就会根据find()方法记录的索引进行字符串的截取。字符串的截取可以传两个参数substring(起始索引, 结束索引)而且它的特点是包头不包尾。通过这个方法就知道了find()记录的结束索引需要 1的原因了。截取完后它会把截取的小串进行返回。boolean b m.find(); String s m.group(); System.out.println(s); // Java但此时代码还没写完它仅仅只是截取了一个后面还有很多数据没爬取因此此时我们需要继续往后读取。在第二次调用find()方法的时候会继续读后面的内容。读取到第二个满足要求的子串时方法会继续返回true。并把第二个子串的起始索引和结束索引 1进行记录。此时我们就可以再次调用group()方法进行截取。b m.find(); // 第二次调用group方法的时候会根据find()方法记录的索引再次截取子串并将这个子串进行返回。 String s2 m.group(); System.out.println(s); // Java但是代码到这还没结束因为文本中有多少满足要求的子串我们并不知道因此此时我们需要使用循环改进。由于不知道要循环多少次所以这里使用while循环。while (m.find()) { String s m.group(); System.out.println(s); }3完整代码//1.获取正则表达式的对象 Pattern p Pattern.compile(Java\\d{0,2}); //2.获取文本匹配器的对象 //拿着m去读取str找符合p规则的子串 Matcher m p.matcher(str); //3.利用循环获取 while (m.find()) { String s m.group(); System.out.println(s); }五、网络数据爬取了解需求把链接 https://www.pv138.com/idCard/list/ 中所有的身份证号码都爬取出来。这个网址中有很多身份证号码和名字。由于网络里面的知识点我们还没有进行学习因此在这里你知道这么做就行了混个眼熟不需要你去练。public class RegexDemo7 { public static void main(String[] args) throws IOException { /* 扩展需求2: 把连接https://www.pv138.com/idCard/list/ 中所有的身份证号码都爬取出来。 */ //创建一个URL对象URL就可以把它理解成是一个网址对象 URL url new URL(https://www.pv138.com/idCard/list/); //openConnection()打开连接即连接上这个网址 //细节:在运行这行代码的时候需要保证网络是畅通 URLConnection conn url.openConnection(); //创建一个对象去读取网络中的数据 BufferedReader br new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; //获取正则表达式的对象pattern String regex [1-9]\\d{17}; Pattern pattern Pattern.compile(regex); //在读取的时候每次读一整行 while ((line br.readLine()) ! null) { // 这里打印的就是我这行读取到的数据 System.out.println(line); } br.close(); } }运行上面代码可以发现控制台中打印的信息都是我们刚刚读取到的。但是这里面并不是所有的数据都是我想用的我只想用里面的身份证号码怎么办此时就可以去用我们刚刚讲解的Pattern和Mathcer完成//获取正则表达式的对象pattern String regex [1-9]\\d{17}; Pattern pattern Pattern.compile(regex);//在读取的时候每次读一整行 while ((line br.readLine()) ! null) { //拿着文本匹配器的对象matcher按照pattern的规则去读取当前的这一行信息 Matcher matcher pattern.matcher(line); while (matcher.find()) { System.out.println(matcher.group()); } }运行程序看下结果可以发现所有的身份证号码都被爬取出来了六、练习需求把下面文本中的座机电话邮箱手机号热线都爬取出来。来黑马程序员学习Java手机号:1851251675818512508907或者联系邮箱:boniuitcast.cn座机电话:01036517895010-98951256邮箱:bozaiitcast.cn热线电话:400-618-9090 400-618-400040061840004006189090String s 来黑马程序员学习Java 电话:1851251675818512508907 或者联系邮箱:boniuitcast.cn 座机电话:01036517895010-98951256 邮箱:bozaiitcast.cn 热线电话:400-618-9090 400-618-400040061840004006189090;既然座机电话邮箱手机号你都想要第一件事就得把座机电话邮箱手机号的正则表达式写出来。由于这三个正则表达式都已经讲过了因此直接复制粘贴就行了手机号的正则表达式1[3-9]\d{9} 邮箱的正则表达式\w[\w[^_]]{2,6}(\.[a-zA-Z]{2,3}){1,2} 座机电话的正则表达式:θ\d{2,3}-?[1-9]\d{4,9}接下来我们就是要来写第四个正则热线电话400-?[1-9]\\d{2}-?[1-9]\\d{3}现在我们要做的就是将大串s中的符合上面四种格式的小串都获取出来。即只要这个小串满足这四个正则表达式之一就会把你获取出来String regex ()|()|()|();由于完整代码比较长可以做一个换行直接在要换行的地方回车就行了IDEA会帮你自动去做字符串的拼接的。String regex (1[3-9]\\d{9})|(\\w[\\w[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}) |(0\\d{2,3}-?[1-9]\\d{4,9}) (400-?[1-9]\\d{2}-?[1-9]\\d{3});接下来我们就需要正式来爬取了//1.获取正则表达式的对象 Pattern p Pattern.compile(regex); //2.获取文本匹配器的对象 //利用m去读取s会按照p的规则找里面的小串 Matcher m p.matcher(s); //3.利用循环获取每一个数据 while(m.find()){ String str m.group(); System.out.println(str);完整代码public class RegexDemo8 { public static void main(String[] args) { String s 来黑马程序员学习Java 电话:1851251675818512508907 或者联系邮箱:boniuitcast.cn 座机电话:01036517895010-98951256 邮箱:bozaiitcast.cn 热线电话:400-618-9090 400-618-400040061840004006189090; System.out.println(400-618-9090); String regex (1[3-9]\\d{9})|(\\w[\\w[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}) |(0\\d{2,3}-?[1-9]\\d{4,9}) (400-?[1-9]\\d{2}-?[1-9]\\d{3}); //1.获取正则表达式的对象 Pattern p Pattern.compile(regex); //2.获取文本匹配器的对象 //利用m去读取s会按照p的规则找里面的小串 Matcher m p.matcher(s); //3.利用循环获取每一个数据 while(m.find()){ String str m.group(); System.out.println(str); } }根据最近的行业调研和招聘数据AI的发展确实对Java工程师提出了新挑战但也带来了明确的转型机遇。其现状可概括为市场分化明显初级岗位收缩但“JavaAI”的复合型人才需求正在崛起。️ 给Java工程师的转型行动建议转变核心角色定位目标应从“业务代码实现者”转向 “智能系统构建者” 或 “AI与业务的中枢架构师” 。这意味着你的核心价值在于设计能容纳AI能力的系统、确保其稳定高效运行并深刻理解业务以找到AI的最佳落地场景构建“Java AI”双技能栈巩固Java深度深入JVM性能调优、分布式系统设计这是你区别于纯AI算法工程师的基石。学习AI应用层技术不必从零开始研究算法。优先学习如何使用AI工具和框架例如Prompt Engineering提示词工程高效驱动大模型的关键技能。AI应用框架学习 LangChain4J、Spring AI 等掌握在Java中集成和调度AI模型的方法。向量数据库了解Milvus等这是构建AI语义搜索、推荐系统的基础。从“用AI辅助编程”开始实践立即在日常工作中使用GitHub Copilot等工具亲身体验其如何改变工作流。同时警惕过度依赖将节约出的时间用于更高层的设计和优化工作。选择垂直领域深耕将你的Java经验与某个行业如金融、医疗、工业物联网结合成为既懂行业业务又懂AI落地解决方案的专家这会形成强大的竞争壁垒。因此捕获AI掌握技术是关键让AI成为我们最便利的工具.一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇如何学习AGI大模型作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享