字符组

  正则表达式的字符组十分简单,就是列出你所想要匹配的字符。阅读本章前,建议先下载我于CSDN上传的示例代码,下载无需分数,下载链接

1.普通字符组

  普通字符组,列出所有你需要匹配的字符。 例如,我想要匹配数字,则可以写出以下正则表达式"[0123456789]"。你觉得"[0123456789]"太麻烦了,如果我要匹配26个英文字符,那不是要全列出来?实际上并不需要这么麻烦。可以使用范围的形式,例如,匹配10个数字可以写成"[0-9]",匹配26个小写英文字母可以写成"[a-z]",匹配26个英文字母(不分大小写的)可以写成"[a-zA-Z]"。是不是简单了很多?

  .NET提供Regex类用于生成正则表达式对象。IsMatch方法是用于检查输入字符串是否匹配正则表达式,返回值为bool。  

//使用正则表达式前请添加该命名空间
using System.Text.RegularExpressions; //第一个参数为你要验证的字符串,第二个参数为正则表达式
Regex.IsMatch("","[0123456789]");//true
Regex.IsMatch("a","[0123456789]");//false
Regex.IsMatch("","[0-9]");//true
Regex.IsMatch("a","[a-z]");//true

2.排除型字符组

  排除型字符组,列出所有你不想要匹配的字符。例如,我不想要匹配数字,则可以写出以下正则表达式"[^0-9]",注意括号前面多了个'^'。

//第一个参数为你要验证的字符串,第二个参数为正则表达式
Regex.IsMatch("","[^0-9]");//false
Regex.IsMatch("a","[^0-9]");//true

3.字符组简记法

  有人说,上面的字符组还是太长了,能不能再缩短点。程序员们总可以找到偷懒的办法,因此可以用以下正则表达式代替。"\d"代表匹配数字,和"[0-9]"是一样的。"\w"代表匹配文字,和"[0-9a-zA-Z_]"是一样的。注意在.NET中,"\w"还能匹配中文,韩文等非英文字母。"\s"匹配一些空格符和换行符,如"\t","\r","\n"等等。最后值得注意的是,请注意这些简记法的大小写,因为"\d"和"\D"是不一样的,"\d"匹配数字,而"\D"匹配"\d"所不能匹配的所有字符,他们是相反的。"\w","\s"也一样。

4.字符组运算

  如果我们要匹配那些非元音字母怎么办?即匹配除(aeiou)的字母。这里可以使用字符组运算,在不同的编程语言里,字符组运算的语法是不一样的,这里取决于编程的实现。如,在.NET中,上述例子我们可以使用"[a-z-[aeiou]]"来匹配。"a-z"是匹配26个字母的,然后减去一个普通字符组"[aeiou]"。

//第一个参数为你要验证的字符串,第二个参数为正则表达式
Regex.IsMatch("a","[a-z-[aeiou]]");//false
Regex.IsMatch("b","[a-z-[aeiou]]");//true

  

  字符组暂时介绍这么多,谢谢!

.NET正则表达式基础入门(一)的更多相关文章

  1. .NET正则表达式基础入门

    这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ...

  2. .NET正则表达式基础入门(四)

    断言 判断某个位置左侧或者右侧是否符合匹配.常见断言有三种,单词边界.行起始/结束位置.环视.阅读本章前,建议先下载我于CSDN上传的示例代码,下载无需分数,下载链接. 1.单词边界 正则表达式&qu ...

  3. .NET正则表达式基础入门(二)

    量词 正则表达式的量词用于表明前面的子表达式需要匹配的次数.阅读本章前,建议先下载我于CSDN上传的示例代码,下载无需分数,下载链接. 1.量词的一般形式 "{n}"," ...

  4. .NET正则表达式基础入门(三)

    括号 正则表达式中的括号能将多个字符或者表达式当做一组,即将他们看成一个整体.这样量词就可以修饰这一组表达式.阅读本章前,建议先下载我于CSDN上传的示例代码,下载无需分数,下载链接. 1.分组 假设 ...

  5. PHP正则表达式基础入门

    思维导图 介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如JavaScript.Java..Net.PHP 等,我今天就把我对正则表达式的理解跟大家唠唠,不当之 ...

  6. (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础

    介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...

  7. [Spring框架]Spring AOP基础入门总结一.

    前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...

  8. Linux基础入门

    第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...

  9. 《信息安全系统设计基础》第一次实验报告--Linux 基础入门

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

随机推荐

  1. .NET Framework 4.5.2 静默安装参数

    Microsoft .NET Framework 4.5.2 是针对 Microsoft .NET Framework 4.Microsoft .NET Framework 4.5 和 Microso ...

  2. 剑指Offer面试题:16.合并两个排序的链表

    PS:这也是一道出镜率极高的面试题,我相信很多童鞋都会很眼熟,就像于千万人之中遇见不期而遇的人,没有别的话可说,唯有轻轻地问一声:“哦,原来你也在这里? ” 一.题目:合并两个排序的链表 题目:输入两 ...

  3. The Similarities and Differences Between C# and Java -- Part 1(译)

    原文地址 目录 介绍(Introduction) 相似点(Similarities) 编译单位(Compiled Units) 命名空间(Namespaces) 顶层成员(类型)(Top Level ...

  4. AutoMapper 最佳实践

    AutoMapper 是一个基于命名约定的对象->对象映射工具. 只要2个对象的属性具有相同名字(或者符合它规定的命名约定),AutoMapper就可以替我们自动在2个对象间进行属性值的映射.如 ...

  5. Please Call Me NIO

    与其他语言相比,Java的IO功能显得异常复杂,各种流操作,通过程序员多次封装才可以达到操作文件的目的.自从jdk1.4之后,java提供了一个新的api完成IO操作,人称New IO(NIO),使用 ...

  6. 干货!表达式树解析"框架"(3)

    最新设计请移步 轻量级表达式树解析框架Faller http://www.cnblogs.com/blqw/p/Faller.html 这应该是年前最后一篇了,接下来的时间就要陪陪老婆孩子了 关于表达 ...

  7. 生成模型(Generative Model)与判别模型(Discriminative Model)

    摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...

  8. JS原生第八篇 (帅哥)

    1.1 复习     1. clientX          clientWidth   可视区域的宽度 clientWidth     width  +  padding offsetWidth   ...

  9. Security8:删除Role 和 User

    数据库的Role 和 User都是基于Specified DB的,在删除这些Principal之前,必须使用Use clause,切换到指定的DB中. sys.database_role_member ...

  10. JS动态生成的元素,其对应的方法不响应(比如单击事件,鼠标移动事件等)

    主要原因:在页面给元素注册点击事件的时候[ $(function () {  XXX }); ],JS动态生成的元素还尚未生成,所以click事件就没有生效 解决方法: 方案一:js动态生成元素后再给 ...