C#正则表达式简单案例解析

正则表达式主要用于字符串的操作。

1.Regex.IsMatch:判断指定的字符串是否符合正则表达式。

2.Regex.Match:提取匹配的字符串,只能提取到第一个符合的字符串。这里还可以使用组来提取。

通过括号为正则表达式分组,这样在提取时就能获取到组的信息。返回的类型是Match,通过Value拿到值。

组信息是通过索引区分的,其中0表示整个匹配的字符,1表示第一个括号内的字符。

string sss = Regex.Match("", "a(.)d").Groups[1].Value;

3.Regex.Matches,提取全部符合的字符。返回值是MatchCollection。操作和Match一致。

4.正则表达式的书写和业务的分析有关,需要具体分析规律。

5.|的优先级很低。

"a|bcd",将匹配到a或bcd。

  

            //.NET 默认使用的是Unicode匹配模式 ,可以通过RegexOption枚举加于限制            //Unicode编码表示“全角”输入
            //去除重复的数据 这里的\1表示自引用,代表引用(.),$1表示反引用,也是代表(.),只不过是在不同的地方引用需要使用不同的表达方式            //这里会把全部的a替换为单个的a,bc同理。            //(.)匹配除回车换行以为的所有字符,\1则自引用(.),+表示出现一次或多次,这样不管这个字符出现多次,都将被替换成(.),完成了业务的需求
            string s = "aaaabbbbccc";
            textBox1.AppendText(Regex.Replace(s, @"(.)\1+", "$1"));
                        //邮箱的规律是包含@和.
            string email = "[email protected]";
            //需要将.点转义             //通过\w匹配所有的字符,接上@,接上\w,接上.,接上\w
            textBox1.AppendText(Regex.IsMatch(email, @"\[email protected]\w+\.[a-zA-Z]+").ToString());

string msg = "";
            //限定符后加?表示终止贪婪模式,尽可能的少匹配
            //默认情况下是贪婪模式,尽可能多的匹配
            Match m1 = Regex.Match(msg, "(.)+?");

            //判断是否是合法的邮编  邮政编码为5位数字,这里需要使用^$使完全匹配
            //^表示开始 $表示结尾 一起用表示要完全匹配
            Regex.IsMatch("", "^[0-9]{6}$");

            //判断是否为身份证号码  身份证号码可以为15位或者18位
            Regex.IsMatch("", @"[\d]{15}|[\d]{17}[0-9xX]");

  

时间: 2024-11-23 09:18:42

C#正则表达式简单案例解析的相关文章

SPSS-相关性和回归分析(一元线性方程)案例解析

任何事物和人都不是以个体存在的,它们都被复杂的关系链所围绕着,具有一定的相关性,也会具备一定的因果关系,(比如:父母和子女,不仅具备相关性,而且还具备因果关系,因为有了父亲和母亲,才有了儿子或女儿),但不是所有相关联的事物都具备因果关系. 下面用SPSS采用回归-线性分析的方式来分析一下:居民总储蓄 和 "居民总消费"情况是否具备相关性,如果具备相关性,那相关关系的密切程度为多少. 下面以"居民总储蓄"和"居民总消费"的调查样本做统计分析,数据如

《Web渗透技术及实战案例解析》pdf

下载地址:网盘下载 内容简介 编辑 本书从Web渗透的专业角度,结合网络安全中的实际案例,图文并茂地再现Web渗透的精彩过程.本书共分7章,由浅入深地介绍和分析了目前网络流行的Web渗透攻击方法和手段,并结合作者多年的网络安全实践经验给出了相对应的安全防范措施,对一些经典案例还给出了经验总结和技巧,通过阅读本书可以快速掌握目前Web渗透的主流技术.本书最大的特色就是实用和实战性强,思维灵活.内容主要包括Web渗透必备技术.Google黑客技术.文件上传渗透技术.SQL注入.高级渗透技术.0day

用java开发编译器之Thompson构造:正则表达式的词法解析

Thompson构造:正则表达式的词法解析 大家好,欢迎大家来到coding迪斯尼,阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程: http://study.163.com/course/courseMain.htm?courseId=1002830012 继上一节我们开发了闭包替换功能后,这一节,我们继续推进Thompson 构造算法的开发.我们的目标是,给定一组正则表达式后,把他转换为NFA有限状态自动机.无论是正则表达式,还是最终的有限状态自动机,他们的本质

[源码]Condition的原理,简单案例(ArrayBlockingQueue),复杂案例(LinkedBlockingQueue).

源代码解析 Re'entrantLock lock = new ReentrantLock(fair); Condition   notEmpty = lock.newCondition(); //返回内部类 AbstractQueuedSyncronizer.ConditionObject 各自维护了两个队列.一个是阻塞同步队列 syncQueue 双向队列,一个是条件等待队列. Condition.await两个作用.1.放入同步队列 park 2.realse锁,3等待别人获取锁acqui

第16本:《视觉繁美:信息可视化方法与案例解析》

第16本:<视觉繁美:信息可视化方法与案例解析> 阅读加写笔记大概用了6个小时.<视觉繁美>是从权哥的QQ上发现的,看到一堆超炫超 复杂的图形,就马上动手从amazon上买了下来.第一天粗翻一遍,确实是非常多.非常复杂的网络图,如果不是搞艺术设计的,真不知道这本书有什么用,但 第二天开始仔细阅读,发现前三章还是相当有料,从树状模型开始,过渡到网络模型,然后仔细剖析了网络模型,第四.五.六章可以说是网络图欣赏,第七章是4 篇论文. 第一章 生命之树 树状模型是当代网络图的源头.古代把

spring心得4--setter注入集合(set、list、map、properties等多种集合,配有案例解析)@基本装(引用)

spring心得4--setter注入集合(set.list.map.properties等多种集合,配有案例解析)@基本装 1. 基本装配 在spring容器内拼凑bean叫做装配.装配bean的时候,需要告诉容器哪些bean以及容器如何使用依赖注入将它们配合在一起.    使用XML装配(xml是最常见的spring应用系统配置源.) 几种spring容器都支持使用xml装配bean,包括: 1).XmlBeanFactory:调用InputStream载入上下文定义文件. 2).Class

基于SPARK SQL 读写ORACLE 的简单案例分析常见问题

该文章出自上海harli,偷偷地把女神的东西拿出来,希望女神不要介意. 一.概述 本文主要内容包含Spark SQL读写Oracle表数据的简单案例,并针对案例中比较常见的几个问题给出解决方法. 最后从常见的java.lang.ClassNotFoundException(无法找到驱动类)的异常问题出发,分析相关的几种解决方法,以及各个解决方法之间的异同点. 二.案例中比较常见问题及其解决方法 2.1 启动 首先查看Spark 官网给出的SparkSQL的编程指南部分(http://spark.

Spring Kafka和Spring Boot整合实现消息发送与消费简单案例

本文主要分享下Spring Boot和Spring Kafka如何配置整合,实现发送和接收来自Spring Kafka的消息. 先前我已经分享了Kafka的基本介绍与集群环境搭建方法.关于Kafka的介绍请阅读Apache Kafka简介与安装(一),关于Kafka安装请阅读Apache Kafka安装,关于Kafka集群环境搭建请阅读Apache Kafka集群环境搭建 .这里关于服务器环境搭建不在赘述. Spring Kafka整合Spring Boot创建生产者客户端案例 创建一个kafk

SSM框架整合(Spring+SrpingMVC+Mybatis) 简单案例

简介: SSM框架是Spring,SpringMVC 和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,dao层四层. Spring实现对业务对象的管理,SpirngMVC负责请求的转发和视图管理,Mybatis作为数据对象的持久化引擎. 简单案例: 一,创建web项目,建好项目结构目录(controller,service,mapper等目录),引入所需的jar包并配置tomcat 这里放上最终的项目结构: pom.xml(继承于