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

成都科盛兴网站建设有限公司中国室内设计者联盟官网

成都科盛兴网站建设有限公司,中国室内设计者联盟官网,提供网站技术,html页面添加wordpressC#.Net正则表达式学习笔记 在处理字符串时,你会经常有查找符合特定条件的字符串的需求,比如判断一串电话号码是否符合格式、一个邮箱是否符合格式、一个密码是否包含了字母大小写等等。 正则表达式(Regular expressions)用于匹配文本,使用一…

C#.Net正则表达式学习笔记

在处理字符串时,你会经常有查找符合特定条件的字符串的需求,比如判断一串电话号码是否符合格式、一个邮箱是否符合格式、一个密码是否包含了字母大小写等等。

正则表达式(Regular expressions)用于匹配文本,使用一些定义好的匹配元字符,即“规则字符”,然后以它的逻辑去过滤筛选字符串。

需注意,不同环境下的正则表达式规则略有区别,这里的正则表达式是在微软C#下的。

C#正则表达式主要使用Regex类,你可以先做一些初步了解。

在这里插入图片描述
先看这么一个例子:

using System;
using System.Text.RegularExpressions;class MyProgram
{static void Main(string []args){string numlist = "333,33,22,65,33";string Regular_expressions = @"\b33\b";foreach (Match i in Regex.Matches(numlist, Regular_expressions))Console.WriteLine(i);}
}

整个程序的功能是找出所有为33的字符串并输出。

这里的正则表达式是\b33\b。这是一个非常简单的功能,实际上正则表达式的能力远不止如此,你可以编写出很复杂的式子以完成你想要的功能。

最终的输出是:

33
33

正好有两个33。具体是如何实现的?我们将在下一节中解释部分正则表达式的元字符。
在这里插入图片描述
假设此时我们正在阅读一本英文书,我们希望找到其中所有的in,该怎么做?

这应该是最简单的正则表达式了,直接使用in即可。

事实却不行,因为很多单词都包含了in这两个字符,如inside,include等等,如果这样找的话,这里面的in也会被匹配。

正确的做法应该是\bin\b。

\b,即是正则表达式中规定的一个元字符(metacharacter),代表着一个单词的开头或结尾。两个单词可能会被空格和逗号分隔,但它不匹配这些,它只代表一个位置。

这样,你就可以匹配到一个独立的in。

现在更新一下情景:你仍然在阅读一本英文书,这次你想要找到所有以i开头的单词。怎么做?

答案是\bi\w*\b。

这个正则表达式略微复杂,但也不算难理解。

开头和结尾的两个\b匹配单词边缘,然后是开头字母i,接下来是\w,它可以匹配任意的字母、数字、下划线或者汉字。

后面的*号也是元字符,但它指代数量,在它前面的元字符可以出现任意次以完成匹配。

翻译一下,它的实际含义是先匹配一个字母i,然后经过任意个字符,匹配直到单词结束。

可以理解吧?好,现在情景又被更新了:你要在一群数字中找到一串格式正确的电话号码。

首先你要明白电话号码的格式,很简单,足够11位即可。

答案是:\d\d\d\d\d\d\d\d\d\d\d。

非常简单粗暴,\d也是元字符,匹配一个数字,写满11个即可。

但这样写未免太麻烦,所以这样写也是正确的:\d{11}。这里的11意为前面的元字符必须被匹配11次。

那么,如果你希望匹配到的电话号码要在正确的位置空格,如167 2829 0220,而不是16728290220(这个号码是我瞎编的),该怎么做?

很简单:\d{3}\s\d{4}\s\d{4}。

这里的\s匹配空白,组合起来即可匹配带空格的电话号码。

随着深入学习,你会发现正则表达式会越来越难以理解,越来越复杂。为了避免这个问题 ,你可以在浏览器上寻找一些相关辅助工具,这里不做细述。
在这里插入图片描述

字符描述
\转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来
(pattern)匹配 pattern 并获取这一匹配
(?:pattern)匹配 pattern 但不获取匹配结果
(?=pattern)正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串
(?!pattern)负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串
xy
[xyz]字符集合。匹配所包含的任意一个字符。例如,‘[abc]’可以匹配“plain”中的‘a’
[^xyz]负值字符集合。匹配未包含的任意字符。例如,‘[^abc]’可以匹配“plain”中的‘p’
[a-z]匹配指定范围内的任意字符。例如,‘[a-z]’可以匹配’a’到’z’范围内的任意小写字母字符
[^a-z]匹配不在指定范围内的任意字符。例如,‘[^a-z]’可以匹配不在‘a’~‘z’'内的任意字符
\B匹配非单词边界
\D匹配一个非数字字符,等价于 [^0-9]
\f匹配一个换页符
\n匹配一个换行符
\r匹配一个回车符
\S匹配任何非空白字符
\t匹配一个制表符
\v匹配一个垂直制表符。等价于 \x0b 和 \cK
\W匹配任何非单词字符。等价于‘[^A-Za-z0-9_]’
http://www.yayakq.cn/news/558254/

相关文章:

  • 网站建设切片效果是什么奥迪互动平台
  • 网站建设与管理难学吗wordpress搬家lnmp
  • 建设银行佛山分行网站广告传媒公司黄页
  • 商品网站策划书wordpress 网店 主题
  • 网站后台管理模块荣耀手机官网入口
  • 网站根目录有哪些广西建设职业学院官网网站
  • 做网站烧钱网络设计方案的重要性
  • 江门网站制作报价西凤九网站建设的目标
  • 免费申请企业网站怎么才能建立网站
  • 朝阳网站建设是什么意思做seo是什么意思
  • 怎样做网站外部链接请人做网站后台密码
  • 新手做网站免费教程网页游戏设计培训学校
  • 公司网站制作公司排名网站设置的建设过程和准备阶段
  • 做网站的收钱不管了微信怎么建立小程序
  • 高端人士长春市长春网站制作站优化
  • 宝安网站设计流程盘锦网站建设制作
  • 做印刷的网站有哪些沪深300指数怎么买
  • 惠阳住房和建设局网站h5制作软件app手机版
  • 上海建筑网站好玩的传奇
  • 建设银行e路通网站erp系统哪家做得好
  • 矿大师德建设网站算命网站怎么做
  • 深圳网站建设大全南昌企业网站开发公司
  • 专题研究网站建设工作动态wordpress英文改中文
  • 网站建设兼职招聘互联网黄页是什么
  • 网站开发有几种wordpress网站统计插件下载
  • 建设网站人员百度网盟推广官方网站
  • 南宁手机企业网站定制公司动易网站模板免费
  • 个人网站的设计师沈阳工务建设集团网站
  • 创建网站是怎么赚钱的招聘网站开发手册
  • h5网站快速搭建班级品牌建设