我是在编写asp.net程序的时候开始碰到正则表达式的,在邮箱的验证或者数字的长度验证等地方。需要用到正则表达式的知识,现在有时间了,在网上找了一下正则表达式的知识:
正则表达式的用途:
我现在只知道在asp.net编程的时候会遇到正则表答式,其他的地方JavaScript VBScript等等可能也会碰到正则表达式。其实正则表达式并不是专门属于某一门编程语言或者开发技术的,而是因为他具有的功能使得他可以用在什么地方:
关于正则表达式的用途:
msdn上给出了比较权威的解释:
典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。
通过使用正则表达式,可以:
-
测试字符串内的模式。
例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
-
替换文本。
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
-
基于模式匹配从字符串中提取子字符串。
可以查找文档内或输入域内特定的文本。
例如,您可能需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。在这种情况下,可以使用正则表达式来确定在每个文件中是否出现该材料或该 HTML 格式标记。此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后,可以使用正则表达式来搜索和替换标记。
正则表达式在 JScript 或 C 等语言中也很有用,这些语言的字符串处理能力还不为人们所知。
另外我在网上找了各种网友对于正则表达式的看法:
“正则表达式是用来判断“字符串”是否符合某个“样式”时,这个“样式”的表达方式”
“匹配/验证、替换、查找”
“通俗点说就是一个筛选规则”
“这个也是不局限于语言"
本人观点:正则表达式是一种用来验证某些字符串是否符合期望的式子,除了验证的功能之外,他还具有替换查找等功能。正则表达式有自己的语法来规定或者实现所期望的式子。另外正则表达式并不是局限与某一个编程语言的。凡是用得到字符串处理的地方都有可能,或者都可以使用这则表达式。
正则表达式的基本语法知识:
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。如:
JScript | VBScript | 匹配 |
---|---|---|
/^/[ /t]*$/ | "^/[ /t]*$" | 匹配一个空白行。 |
//d{2}-/d{5}/ | "/d{2}-/d{5}" | 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。 |
/<(.*)>.*<///1>/ | "<(.*)>.*<///1>" | 匹配一个 HTML 标记。 |
从上表可以看出JScript与VBScript的区别是最外边的那个标记不同:前者是两个反斜杠后者是双引号
msdn上有对正则表达式的全面介绍大家可以看一下:http://msdn.microsoft.com/zh-cn/28hw3sce(VS.80).aspx
我学习正则表达式是从网上看了某位大哥的两篇文章,那个介绍的比较详细:大家可以参考
正则表达式基本语法:http://fineboy.cnblogs.com/archive/2005/09/08/232410.html
c#正则表达式全面剖析:http://www.cnblogs.com/fineboy/archive/2005/09/09/233088.html