`
free_zhou
  • 浏览: 52443 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

正则表达式语法 应用

阅读更多
  接触正则表达式也有一段时间了,也深体会REGEXP的优点,始终没有仔细的学习过,最近写个。net的程序,需要用到正则,现整理一下,以防忘记。

正则表达式基本语法
一.
1. \d 0-9数字
2. \D 非数字,0-9 补集
3. \w 单词字符 0-9 & 大小写字母 & 下划线
4. \W \w的补集
5. \s 空白字符 如:换行\n & 回车\r & 制表符\t & 垂直制表符\v & 换页符\f
6. \S \s的补集
7. \. 除换行符\n以外的所有字符
8. [...] 匹配[]内所有字符
9. [^...] 匹配[]内所列出的所有字符
 string test = @"Success belongs to those who are prepared!";
            Regex r1 = new Regex("to");
            //Console.Write(r1.IsMatch(test)); = true
            Regex r2 = new Regex("[0-9a-z]"); //匹配0-9 z-a
            //Console.Write(r2.IsMatch(test)); = true


Regex r3 = new Regex("^belongs to those$");
            Regex r4 = new Regex("^Success belongs to those who are prepared!$");
            Regex r5 = new Regex("^Success belongs to those");
            Console.Write(r3.IsMatch(test)); //false
            Console.Write(r4.IsMatch(test)); //true
            Console.Write(r5.IsMatch(test)); //true
            Console.Write(r5.Matches(test).Count);


//多行时
            String test1 = @"Success belongs to
those who are prepared!";
            Regex r6 = new Regex(@"^Success belongs to\r\nthose who are prepared!$",RegexOptions.Multiline);

            Console.Write(r6.IsMatch(test1)); //true
            Console.Write(r6.Matches(test1).Count);  //1

//多行时设置了RegexOptions.Multiline属性,^$多次匹配,每行一次
            Regex r7 = new Regex("^", RegexOptions.Multiline);
            Console.Write(r7.Matches(test1).Count);  //2


 // \b约束一个完整的词,\bxxx\c 或 \bxxx 或 xxx\b 一样
            Regex r8 = new Regex(@"belongs\b", RegexOptions.Multiline);
            Console.Write(r8.Matches(test1).Count); //1

            string date = "1986-02-14";
            //([1-9]\d{3}-\d{2}-\d{2})|(\d{4}/\d{2}/\d{2})
            Regex r9 = new Regex(@"^[1-9]\d{3}-\d{2}-\d{2}$");
            Console.Write(r9.IsMatch(date)); //true

二.定位符。定位符代表一个虚的字符,是一个位置也可以直观的认为定位符是字符与字符间的微小的间隙。
1. ^ 其后的字符位于字符串的开始
2. $ 其前的字符位于字符串的结束
3. \b 匹配一个单词的边界
4. \B 匹配非单词的边界

5. \A 前面的字符必须位于字符串的开始处
6. \z 前面的字符必须位于字符串的结束处
7. \Z 前面的字符必须位于字符串的结束处或者换行符前
8. \b 通常约束一个完整的单词
三.重复描述字符
1.{n} 匹配前面的字符n次
2.{n,} 匹配前面的字符n次或多于n次
3.{n,m} 匹配前面的字符n - m 次
4.? 匹配前面的字符0 - 1次
5.+ 匹配前面的字符1或多于1次
6.= 匹配前面的字符0次或少于0次
四.择一匹配
1.(|) 如:(ad|cd)
2.如[a-z]
五.特殊字符匹配
1.\\ 匹配\
2.\" 匹配“
六. 贪婪与非贪婪  ****
    1.(a)(\w+) :匹配a及后面字符
     2.(a)(\w+)(a) : 为了精确匹配\w+会让出最后一位匹配a
      同理,带 "*" 和 "{m,n}" 的表达式都是尽可能地多匹配,带 "?" 的表达式在   匹配可不匹配的时候,也是尽可能的 "要匹配"。这 种匹配原则就叫作 "贪婪" 模式。在修饰匹配次数的特殊符号后再加上一个 "?" 号,则可以使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式,尽可能的 "不匹配"。这种匹配原则叫作 "非贪婪" 模式,也叫作 "勉强" 模式。如果少匹配就会导致整个表达式匹配失败的时候,与贪婪模式类似,非贪婪模式会最小限度的再匹配一些,以使整个表达式匹配成功。如:abbbabbba
   3.(a)(\w+?) 只匹配了a 后一个b
   4.(a)(\w+?)(a) 为了匹配成功,\w+?匹配了bbb
   别人写的一个例子很形象:如下

       举例:表达式 "<td>(.*)</td>" 与字符串 "<td><p>aa</p></td> <td><p>bb</p></td>" 匹配时,匹配的结果是:成功;匹配到的内容是 "<td><p>aa</p></td> <td><p>bb</p></td>" 整个字符串, 表达式中的 "</td>" 将与字符串中最后一个 "</td>" 匹配。而相比之下:表达式 "<td>(.*?)</td>" 匹配举例1中同样的字符串时,将只得到 "<td><p>aa</p></td>", 再次匹配下一个时,可以得到第二个 "<td><p>bb</p></td>"。

七. 回溯与非回溯
八. 正向搜索与反向搜索
九. 16进制范围
十. 精确匹配   *****

找时间把没相对应的代码补上,以便学习!现在用C#,就上C#代码吧,java的regex也差不多。
分享到:
评论

相关推荐

    C#正则表达式语法大全

    C#正则表达式语法大全涵盖了在C#编程语言中使用正则表达式进行文本匹配、提取、替换等操作所必需的语法知识。正则表达式是一种强大的文本处理工具,它可以描述字符串的模式,让我们能够执行复杂的搜索和匹配操作。 ...

    JAVA正则表达式语法

    本文将详细介绍一些常见的Java正则表达式语法及其应用实例。 首先,我们来讲解几个基本的正则表达式元字符及其功能: - `^` 表示匹配输入字符串的开始位置。 - `$` 表示匹配输入字符串的结束位置。 - `*` 表示前面...

    PB实现的正则表达式

    需要注意的是,由于PowerBuilder 11.5年代较久,其支持的正则表达式功能可能相对较弱,对于现代的复杂正则表达式语法可能不完全兼容。在使用时,开发者可能需要查阅相关的文档,或者考虑升级到支持更强大正则表达式...

    pb 使用正则表达式源码pbregexp

    描述中提到的“pb中使用正则表达式组件,通过该组件可以在pb脚本中使用功能强大的正则表达式”,强调了pbregexp组件的强大功能,意味着它可能支持丰富的正则表达式语法,如量词(*、+、?)、字符类、预定义字符集、...

    正则表达式语法大全_手册.doc

    正则表达式语法大全 正则表达式是一种强大的模式匹配语言,广泛应用于字符串处理、文本匹配和搜索等领域。下面是正则表达式语法大全的知识点总结: 1. 特殊字符:在正则表达式中,某些字符具有特殊意义,例如: *...

    正则表达式测试工具C#版(src)

    2. **正则表达式语法** - 基本元字符:如`.`(匹配任意字符,除换行符)、`^`(匹配行首)、`$`(匹配行尾)、`\d`(匹配数字)、`\w`(匹配字母数字下划线)等。 - 量词:`*`(零个或多个)、`+`(一个或多个)、...

    正则表达式语法(常用的正则表达式)

    正则表达式语法 正则表达式是一个强大的字符串处理工具,广泛应用于窗体验证、文本处理等领域。下面是正则表达式语法的详细介绍: 1. 元字符 元字符是正则表达式的特殊字符,它们具有特殊的含义。常见的元字符...

    正则表达式(Deelx版)|正则表达式(Deelx版)支持库

    3. **正则表达式语法** - **量词**:如`*`, `+`, `?`, `{n}`, `{n,}` 和 `{n,m}` 控制匹配次数。 - **字符类**:如`[abc]`匹配a、b或c,`[^abc]`匹配除a、b、c外的任何字符。 - **边界匹配器**:`\b`匹配单词边界...

    正则表达式语法.pdf

    ### 正则表达式语法详解 #### 一、引言 正则表达式是一种强大的文本模式匹配工具,广泛应用于各种编程语言中,用于文本搜索、替换等操作。它结合了普通字符和特殊字符(元字符),能够精确地描述在文本中需要匹配...

    正则表达式转换工具

    4. **正则表达式在编程中的应用** - 数据验证:在表单提交时,可以使用正则表达式验证输入格式,如邮箱、电话号码等。 - 文件搜索:在代码编辑器中,使用正则表达式快速查找和替换特定模式的文本。 - 数据清洗:...

    C#正则表达式语法

    正则表达式在C#中被广泛应用于数据验证、文本提取、日志分析等多个场景。 在C#中,正则表达式的基本语法遵循.NET Framework的标准,它包含了一系列的元字符,这些元字符具有特殊的含义,能够帮助构建各种复杂的模式...

    正则式工具(自动生成正则表达式)

    - **多语言支持**:支持多种编程语言的正则表达式语法,确保生成的正则表达式能在不同环境中正常工作。 - **功能强大**:可能包含高级特性,如前瞻和后瞻断言、环视条件、回溯控制等,满足复杂的需求。 - **性能优化...

    正则表达式语法详解正则表达式语法详解

    ### 正则表达式语法详解 #### 一、引言 正则表达式是一种功能强大的文本处理工具,它能够帮助用户灵活地实现对文本数据的查找、替换等操作。正则表达式的强大之处在于它的模式匹配能力,通过一系列普通的字符(如a...

    正则表达式必知必会v_1.0.pdf

    正则表达式是一种强大的文本处理工具,广泛应用于各个领域。下面是对正则表达式的详细解释: 正则表达式的用途 正则表达式主要用于处理文本,提供了两大主要功能:查找和替换。查找功能允许用户根据不同的规则来...

    正则表达式在数据库查询中的应用

    - **兼容性问题**:不同的数据库系统支持的正则表达式语法可能存在差异,需要根据所使用的数据库类型调整正则表达式的写法。 - **安全性问题**:在用户输入的数据中使用正则表达式时,应注意防止SQL注入攻击,确保...

    Web正则表达式语法

    ### Web正则表达式语法详解 #### 一、引言 正则表达式是一种功能强大的文本处理工具,它能够帮助开发者高效地完成字符串的搜索、替换等操作。尤其是在Web开发中,无论是前端还是后端,正则表达式的应用都非常广泛。...

    易语言正则表达式匹配中文

    综上所述,易语言正则表达式匹配中文涉及了字符串处理、字符编码、正则表达式语法等多个方面。通过学习和掌握这些知识点,开发者可以有效地处理中文文本,实现高效的数据搜索和处理功能。在实践中,不断探索和优化,...

    正则表达式语法大全

    正则表达式语法大全 正则表达式是一种强大的字符串匹配工具,它可以帮助开发者快速地从大量文本数据中提取有用的信息。下面是正则表达式语法大全,涵盖了基本元字符、量词、分组、断言、锚点、字符类、转义字符等...

    SQL 语法分析,正则表达式解析C#文件;正则表达式实现的语法分析引擎

    在这个主题中,我们将深入探讨SQL语法分析、正则表达式的应用以及如何在C#中使用正则表达式来解析文件。 首先,SQL语法分析是理解和执行SQL查询的关键步骤。当一个SQL语句被提交到数据库管理系统时,系统会对其进行...

    精通正则表达式(第三版)简体中文版

    《精通正则表达式(第三版)简体中文版》是一本全面介绍正则表达式技术的书籍,不仅覆盖了基本语法和高级特性,还详细讲解了在不同编程环境下的具体应用方法。对于想要深入学习并掌握正则表达式技术的读者来说,本书...

Global site tag (gtag.js) - Google Analytics