惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - 小居工作室

七牛云存储客户端(本人开发,开源) 如鹏网 net高级技术 第二章 委托和事件(复习) 如鹏网 net高级技术 第一章 各种知识点(复习) 写个QuartzHelper类 Pdf File Writer 中文应用(PDF文件编写器C#类库) 如鹏网 静态Web开发 第五章:JQuery 如鹏网 静态Web开发 第四章:JSDom 如鹏网 静态Web开发 第三章:Javascript 如鹏网 静态Web开发 第二章:css 如鹏网 静态Web开发 第一章:html 如鹏网.Net三层架构 第四章代码生成器 如鹏网.Net三层架构 第三章MD5和NPOI使用 如鹏网.Net三层架构第二章登录和会员管理 如鹏网.Net三层架构第一章三层基础 如鹏网.Net高级技术9.XML文件操作 如鹏网.Net高级技术8.反射 如鹏网.Net高级技术7.委托、事件 如鹏网.Net高级技术5.泛型集合及键值对 如鹏网.Net高级技术3.值类型和引用类型 如鹏网.Net高级技术4.String特点及常用方法
如鹏网.Net高级技术6.正则表达式
小居工作室 · 2016-03-04 · via 博客园 - 小居工作室

该段课程主要讲解正则表达式中常用的元字符,限定符,以及正则表达式在C#中如何使用.

正则表达式的作用:

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

基本元字符

.表示除了\n以外的任意的单个字符

[0-9]表示的是0到9之间任何一个整数数字

()提升优先级别和提取组

|或者,.+是任意字符出现1次到无限次

.*是任意字符串出现0次到无限次 .?任意字符出现0次到1次 {1,2}一次或两次,{1,}最少一次 \d数字,\D非数字,\s空白,\S非空白,\w小写字母和数字和汉字,\W特殊符号 ^以…开始,$以…结束 案例:提取整个页面所有邮箱**********,下载页面图片

1.基本内容
. 除了\n以外的任意一个字符

[]表示范围 任意一个
[0-9] 从0-9 任意一个整数数字
[a-z]
[A-Z]
[a-zA-Z]
[0-9a-zA-Z]

() 提升优先级 分组

| 或者 优先级别最低
([0-9])[a-z]|[A-Z] 0e|A
0|W 只有一个

2.限定符

+ : +前面的表达式最少出现1次最多无限次 
[0-9]+ 223428234 
[A-Za-z]+ a AZa

* : *前面的表达式最少出现0次最多无限次 (可以什么都没有)
([a-z])* fsdfds

? : ?前面的表达式最少出现0次最多1次, (可以什么都没有)
([a-z])? f
?另一个作用:阻止贪婪模式 
.+? 只匹配一次就不
先.+ 不行 再.+?

{1,3} 前面的表达式最少出现1次最多3次 
[a-z]{1,3} frf ik l 
{0,} 前面的表达式最少出现0次最多无限次 
{9,10} 前面的表达式最少出现9次最多10次
{,9} {100,7} 错误的

[0-9]   \d数字 \d{7} [0-9] 都表示数字出现7次

    \D非数字

    \s 空白符 (空格 tab)
    \S 非空白符

    \w 字母 数字 汉字
    \W 特殊符号

^ 以什么开始 或者取非 
    [^0-9] 表示非数字
    ^[0-9] 以数字开头

$ 以什么结尾
    ^[0-9][a-z]$ 9a 8e :长度为2 必须以数字开头,以小写字母结尾

案例:

  身份证号码:15位 18位   最后一位可能是x 或者X

               ^ [1-9][0-9]{14}| ^[1-9][0-9]{16}[0-9xX]$

               ^ [1-9][0-9]{14}([0-9]{2}[0-9xX])?

     邮箱:数字字母-_. &@
              [0-9a-zA-Z_-.]+@[0-9a-zA-Z_.] +( [.][a-zA-Z]+ ){1,2}    

            Console.WriteLine("请您输入邮箱:");
            string email = Console.ReadLine();
            //判断是否匹配
          //  bool result = Regex.IsMatch(email, "^[0-9a-zA-Z_.-]+@[0-9a-zA-Z_.]+([.][a-zA-Z]+){1,2}$");
            // Console.WriteLine(result);
            
            //获取匹配的结果
            Match ma = Regex.Match(email,"^[0-9a-zA-Z_.-]+@[0-9a-zA-Z_.]+([.][a-zA-Z]+){1,2}$");
           
            Console.WriteLine(ma.Value); //显示结果 ,不匹配就为空

如鹏网:http://www.rupeng.com