正则表达式笔记+demo

            //1.正则表达式由普通字符和特殊字符(又称元字符)组成的文字模式,是一个模板
            // 常用元符号示例:^ .   \   *+ ?  { 、} ( 、  )   [  、 ]  | $
            // ★★★这些元符号都有其特殊含义,如果要表示其本来字符的含义,需要在元符号前加上"\"来转义
            // 如,“^\\+?[1-9] [0-9]*$”,匹配正号或没有正号开头,含有0个或n个数字的字符串: 
            // \\+表示正号,\也是元字符,所以要表示\本来的意思,必须再加一个\,即\\; ?匹配正号0次或1次,*匹配0-9数字0次或n次

            /*预定义字符类
             *  .     匹配除终止符意外的任何单字符      "s.n"匹配 “son” “san” "sen"  
             *  \d    数字0-9       等价于[0-9]
             *  \D    非数字        等价于[^0-9]      
             *  \w    字符a-zA-Z0-9    等价于[a-zA-Z0-9]
             *  \W    非字符           等价于[a-zA-Z0-9]
             *  \s    空白字符          等价于[\r\t\n\v\f]
             *  \S    非空白字符        等价于[^\r\t\n\v\f]
             */

            //边界匹配符:
            //行开始 ^    ^a匹配“abc”中的a    
            //$行结束     "c$"匹配"abc"中的c 

            //重复限定符:
            //X?    X重复0或1次          等价于X{0,1}
            //X*    X重复0次或多次       等价于X{0,}
            //X+    X重复一次或多次      等价于X{1,}
            //X{n}  X重复n次            等价于X{n}
            //X{n,}  X至少重复n次       等价于X{n,}
            //X{n,m}  X重复n~m次      等价于X{n,m}

            //匹配算法:贪婪算法返回了一个最左边的最长的匹配。如果在重复限定符后面加后缀“?”,则正则表达式引擎使用懒惰性匹配算法

            //选择分支:正则表达式中“|”表示选择。用于选择符匹配多个可能的正则表达式中的一个,如“red | green | blue”

            //分组:重复限定符重复前导字符,如果需要重复多个字符,则需要把正则表达式的一部分放在圆括号()内,形成分组

           //举个栗子 :(\d{1,3}\.){3}匹配ddd.ddd.ddd

     static void Main(string[] args){//正则表达式用途1,匹配字符串string pattern_regex = "^[0-9]{6}";bool b = Regex.IsMatch("123456", pattern_regex);pattern_regex = "^z|food$"; //匹配以z打头,或food结尾的字符串,这两个条件满足一个即为true,注意,模板表达式中不能有空格,否则也会将空格匹配进来bool bl = Regex.IsMatch("zfoo", pattern_regex);//以z开头,truebl = Regex.IsMatch("yfood", pattern_regex);//以food结尾,truebl = Regex.IsMatch("yood", pattern_regex);//falsepattern_regex = @"^(z|f)\w*d$";//匹配以z或f打头,后米可以含或不含数字字符汉字,并以d结束的字符串bl = Regex.IsMatch("zood", pattern_regex);bl = Regex.IsMatch("foodasd", pattern_regex);bl = Regex.IsMatch("food", pattern_regex);//返回false,因为模板中起码包含 foodfood或zoodfoodbl = Regex.IsMatch("zoodadsfasdffood", pattern_regex);//匹配IP地址 192.168.210.123//元字符本身可以表示其特殊含义,如果在pattern中要表示其字符自身的匹配,则加\\或 @"\.",如\\.  @"\."//预定义字符类,需要在字母前加\\才能起到作用,如\\d,表示0-9的数字,若pattern中匹配字符d本身,则直接写d就可以了string pat = "^([0-9]{1,3}\\.){3}[0-9]{1,3}$";bl = Regex.IsMatch("192.168.210.36", pat);pat = @"^(\d{1,3}\.){3}\d{1,3}$";   //@加了@转义就不起作用了,\表示其本意bl = Regex.IsMatch("1.1.2.3", pat);//判断是否是合法的日期格式2020-01-29pat = "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$";bl = Regex.IsMatch("2020-12-30", pat);//正则表达式用途2,从字符串中查找匹配的子字符串string txtcontent = File.ReadAllText("update.txt");//匹配字符串中所有符合要求的已释放版本信息,注意查找匹配的字符串不能有开始结束符MatchCollection mc = Regex.Matches(txtcontent, "Release (\\d{1,2}\\.){3}\\d{1,2}");List<string> lst_ver = new List<string>();foreach (Match match in mc){lst_ver.Add(match.Value);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql基础之事务

简介 事务是数据库的逻辑工作单位&#xff0c;具有原子性、一致性、隔离性、持久性四大特性。 【原子性】&#xff1a;事务中的操作要么全部成功&#xff0c;要么操作失败全部回滚&#xff0c;不会出行部分完成的状态。 【一致性】&#xff1a;事务开始到结束时&#xff0c;数据…

pgsql常用索引简写

文章来源&#xff1a;互联网博客文章&#xff0c;后续有时间再来细化整理。 在数据库查询中&#xff0c;合理的使用索引&#xff0c;可以极大提升数据库查询效率&#xff0c;充分利用系统资源。这个随着数据量的增加得到提升&#xff0c;越大越明显&#xff0c;也和业务线有关…

《鸟哥的Linux私房菜》第6章——总结与习题参考答案

目录 一、 简介 二、一些新了解的指令 1.touch- 修改文件时间或创建新文件 2.umask-新建文件/目录的默认权限 3.文件隐藏属性 4.文件特殊权限 5.file-观察文件类型 三、简答题部分 一、 简介 本章介绍了一些常用的文件与目录指令&#xff0c;包括新建/删除/复制/移动/查…

2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)

1、log4j2 特征&#xff1a; 恶意请求中包含 JNDI 协议地址&#xff0c;如"ldap://"、"rmi://"等&#xff0c;被 log4j2 解析为 JNDI 查找。 原理&#xff1a; 在日志输出中&#xff0c;未对字符进行严格的过滤&#xff0c;执行了 JNDI 协议加载的远程恶…

教师如何搭建学生查询考试分数的平台?

随着信息技术的快速发展&#xff0c;搭建一个学生查询考试分数的平台已经成为现代教育管理的重要组成部分。这样的平台不仅可以提高成绩管理的效率&#xff0c;还能为学生提供便捷、及时的成绩查询服务。那么&#xff0c;作为教师&#xff0c;我们应该如何搭建这样一个平台呢&a…

Python中的惩罚分析:理论与实践指南

目录 写在开头1. 理论基础1.1 优化问题与约束条件简介1.2 什么是惩罚分析1.3 惩罚分析的应用场景1.4 惩罚方法的类型2. 惩罚分析在Python中的实现2.1 实现代码示例2.2 未加惩罚的模型2.3 加惩罚的模型(L1和L2正则化)2.4 选择合适的惩罚方法与调整强度2.5 惩罚过程改善过拟合问…

【海贼王的数据航海】栈和队列

目录 1 -> 栈 1.1 -> 栈的概念及结构 1.2 -> 栈的实现 1.2.1 -> Stack.h 1.2.2 -> Stack.c 1.2.3 -> Test.c 2 -> 队列 2.1 -> 队列的概念及结构 2.2 -> 队列的实现 2.2.1 -> Queue.h 2.2.2 -> Queue.c 1 -> 栈 1.1 -> 栈的…

如何缩小你和大厂UI设计师之间的差距?重点关注你的作品集!

据说金三银四&#xff0c;在新一轮招聘旺季到来之前&#xff0c;你做过UI作品集吗&#xff1f;一个好的作品集可以为你的面试增加很多分数&#xff01;在开始之前&#xff0c;分享五个适合交互设计作品集的软件&#xff1a; 一、即时设计 这是一款专门为UI设计而设计的在线矢…

多线程(volatile)

volatile的功能 保证内存可见性禁止指令重排序 内存可见性 简单的理解 两(多)个线程同时针对一个变量进行操作, 一个线程读, 一个线程修改, 此时读到的值不一定是修改过后的值 即读线程没有感知到变量的变化 (其实是 编译器/JVM 对于代码在多线程情况下的优化进行了误判) 从 J…

maven父工程

maven父工程 一般最上面是定义的属性然后是版本管理然后是模块聚合 父工程一般只需要留一个pom.xml文件就行了。 父工程主要是用于版本管理和模块聚合。 一般最上面是定义的属性 属性中写的是各个依赖的版本&#xff0c;方便下面引用。 <properties><java.version&…

【Python】-闲聊:如何系统的自学Ptyhon

如何系统地自学Python 学习Python需要有一个系统的计划和策略&#xff0c;这样才能有效地掌握这门语言。下面是一个自学Python的指南&#xff0c;包括方法、实际例子和建议&#xff0c;适合新人小白&#xff0c;老手请绕过。 一、确定学习目标 在开始学习之前&#xff0c;首…

OD_2024_C卷_200分_3、电脑病毒感染【JAVA】【图论 / 单源最短路径(dijkstra)】

题目描述 一个局域网内有很多台电脑&#xff0c;分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样&#xff0c;所以感染时间不一样&#xff0c;感染时间用 t 表示。 其中网络内一台电脑被病毒感染&#xff0c;求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不…

Linux:设置别名命令alias

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 在Linux中alias命令用于为一串字符&#xff08;常代表命令&#xff09;设置一个别名&#xff0c;该别名在Bash读取并解析一行命令时会被展开。 下面是该命令的语法。 用…

github(不是git啊)操作记录(踩坑)

专栏介绍与文章目录-CSDN博客 github是程序员绕不开的东西。 网站打不开&#xff1f; 向雇主或有关部门申请合法信道连接互联网。 明明账号密码都对却登录失败&#xff1f; 向雇主或有关部门申请合法信道连接互联网。 重置密码失败&#xff1f; 向雇主或有关部门申请合法信道…

【DRAM存储器二十三】DDR4介绍-DDR4相对DDR3的变化、框图

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《镁光DDR4数据手册》 、《JESD79-4B》 终于到DDR4了,DDR4在当下应用还比较广泛,所以这部分准备多花点时间整理。 DDR4相对DDR3的变化 老规矩,先从DDR4的…

BOM

文章目录 1. BOM概述1.1 什么是BOM1.2 BOM构成 2. window 的常见对象2.1 窗口加载事件2.2 调整窗口大小事件 3. 定时器3.1 setTimeout()3.2 停止 setTimeout() 定时器3.3 setInterval()*案例--倒计时效果 3.4 清除setInterval() 定时器*案例--发送短信 3.5 this 指向问题 4. JS…

二叉搜索树题目:恢复二叉搜索树

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;恢复二叉搜索树 出处&#xff1a;99. 恢复二叉搜索树 难度 5 级 题目描述 …

JAVA八股文面经问题整理第1弹

文章目录 目录 文章目录 提问问题 问题1 问题2 问题3 问题4 问题5 问题6 问题7 问题8 问题9 问题10 问题11 问题12 问题13 问题14 问题15 问题16 问题17 问题18 问题19 写在最后 提问问题 项⽬的⽤户数据怎么存储的&#xff0c;存储在哪⾥&#xff0c;⽤的什…

西门子PLC常用底层逻辑块分享_单/双输出电机

文章目录 前言一、功能概述二、单输出电机程序编写1.创建自定义数据类型2.创建FB功能块“单输出电机”3.编写程序 三、双输出电机程序编写1.创建自定义数据类型2.创建FB功能块“双输出电机”3.编写程序 前言 本文分享一个自己编写的电机控制逻辑块。 一、功能概述 手动状态、…

C语言(循环)单元练习

一、单项选择题 1、以下程序段中与语句ka>b?(b>c?1:0):0&#xff1b;功能等价的是__A____。 A. if((a>b)&&(b>c)) k1; B. if((a>b)||(b>c)) k1 else k0; else k0; C. if(a<b) k0; D. if(a>b)…