开发工具与关键技术:VS + C#
撰写时间:2019.07.03
我们在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式是描述字符模式的对象,用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具,就是记录文本规则的代码。
一、正确认识正则表达式(参考教学资料)
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式 通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作(但是写 法和支持程度上有所不同)。
概念:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一 个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
作用:正则表达式主要用来验证、搜索和替换
二、正则表达式使用(参考教学资料)
JavaScript中正则表达式的定义如下:
其中expression即为正则表达式的名称,模式(pattern)可以是任何复杂或简单的正则表达式(但必须是在JavaScript支持范 围内的),标志(flags)即用来表明正则表达式行为。
下面介绍JavaScript中支持的三个标志(flags):
g: 表示全局(global)模式,表示pattern会应用于所有字符串,而不是找到一个匹配项后立即停止。
i :表示不区分大小写(ignore)模式。即忽略pattern和字符串的大小写。
m:表示多行(multiple)模式。 即到一行文本末尾时还会继续查找下一行中是否存在匹配的项。
JavaScript中正则表达式主要的方法:
expression.test() 测字符串string,看它是否含有与regexp相匹配的文本。如果 string中含有这样的文本,该方法将返回 true,否则,返回false。
expression.exec() 将检索字符串string,从中得到与正则表达式regexp相匹配的文本。如果exec()找到了匹配的文 本,它就会返回一个结果数组。否则,返回null。
C#正则表达式使用的类为 System.Text.RegularExpressions.Regex;
常用的方法有以下4个:
一:测试:Regex.IsMatch("被测试字符串", "正则表达式", "正则表达式选项/模式");
二:匹配出第一条结果:Regex.Match("被匹配字符串", "正则表达式", "正则表达式选项/模式");
三:匹配出所有结果: Regex.matchs("被匹配字符串", "正则表达式", "正则表达式选项/模式");
四:替换:Regex.matchs("被匹配字符串", "正则表达式", "替换字符", "正则表达式选项/模式");
注:以上两点概念内容摘要于教学资料,方便读者正确理解认识。
有可能字符串里有不止一个部分满足给定的正则表达式,这时每一个这样的部分被称为一个匹配。匹配在本文里可能会有三种意思:一种是形容词性的,比如说一个字符串匹配一个表达式;一种是动词性的,比如说在字符串里匹配正则表达式;还有一种是名词性的,就是 字符串中满足给定的正则表达式的一部分。
由于是初学者,感觉正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。单单概念的理解,是不足以我们去深刻认识到它的困难,由于难于读写,容易出错,所以很有必要使用工具来测试正则表达式。在这篇文章中,主要是一些对于正则表达式的概念进行了解介绍,在下一篇文章将对正则表达式各种应用进行介绍。