我同学写了一个正者的验证,就是几个例子 。看了一下...感觉应该授之于渔...
么是正者?
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,
正则表达式就是记录文本规则的代码。
很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索
*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂。
学习正则表达式的最好方法是从例子开始:试验"假设你在一篇英文小说里查找hi",答案:"正则表达式hi"没忽悠你。是这样的。这是最简单的正则表达式,它可以精确匹配这样的字符串。很不幸,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。精确一点,改为\bhi\b吧。\b是正则表达式规定的一个特殊代码(元字符
)。下面会详细说它。代表着单词的开头或结尾,也就是单词的分界处。假如你要找的是hi后面不远处跟着一个Lucy,那么你应该用\bhi\b.*\bLucy\b;'.'和'*'都是元字符。前者匹配除了换行符以外的任意字符,后者是数量。.*连在一起就意味着任意数量的不包含换行的字符。如果同时使用其它元字符,我们就能构造出功能更强大的正则表达式。不难吧...哈哈因为你是天才...
正则表达式的语法很令人头疼
,即使你是天才也会这么认为。由于难于读写,容易出错,所以找一种工具对正则表达式进行测试是很有必要的。在不同的环境下正则表达式的一些细节是不相同的,本人推荐RegexTester.exe。
元字符
...注意了上面没看懂的....
现在你已经知道几个很有用的元字符了,如\b,.,*,还有\d.正则表达式里还有更多的元字符,比如\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w匹配字母或数字或下划线或汉字等。
对中文/汉字的特殊处理是由.Net提供的正则表达式引擎支持的,其它环境下的具体情况请查看相关文档。
下面来看看更多的例子:
\ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
好吧,现在我们说说正则表达式里的单词是什么意思吧:就是多于一个的连续的\w。不错,这与学习英文时要背的成千上万个同名的东西的确关系不大 :)
\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。
\b\w{6}\b 匹配刚好6个字母/数字的单词。
常用的元字符 代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。
这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。
因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。我同学举了这个例子...不过学了这招他上面的例子你可以一个个自己写不要记了...哈哈
和忽略大小写的选项类似,有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项,^和$的意义就变成了匹配行的开始处和结束处。
字符转义:
如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\. 好累...不过会编程的都知道
例如:unibetter\.com匹配unibetter.com,C:\\Windows匹配C:\Windows。
重复:
你已经看过了前面的*,+,{2},{5,12}这几个匹配重复的方式了
下面是正则表达式中所有的限定符
常用的限定符 代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
如:Windows\d+匹配Windows后面跟1个或更多数字
好累 今天就写这么多剩下的以后些吧...谢谢大家关注
分享到:
- 2008-04-24 20:51
- 浏览 1282
- 评论(1)
- 论坛回复 / 浏览 (1 / 2249)
- 查看更多
相关推荐
Java使用正则表达式提取XML节点内容的方法示例 Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作...
例如,你可以用正则表达式验证电子邮件地址的格式,或者从一大段文本中找出所有的电话号码。 这款V2.0.0.1版本的正则表达式自动生成器提供了一些关键功能,包括: 1. **向导式界面**:对于不熟悉正则语法的用户,...
正则表达式(Regular Expression,简称regex)是一种用于匹配字符串的强大工具,广泛应用于文本处理、数据验证、搜索和替换等场景。在编程语言中,正则表达式通常以字符串的形式存在,通过特定的语法和模式来定义...
正则表达式作为一种文本处理工具,在计算机编程和数据处理领域中扮演着极其重要的角色。它不仅适用于几乎所有编程语言和计算机平台,而且能够执行复杂的文本搜索、匹配、替换和提取操作。正则表达式的核心是通过定义...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过一套特定的规则(模式)来定义字符串的匹配模式,广泛应用于编程语言、文本编辑器、Web 开发等领域。本教程旨在帮助初学者在30分钟内...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换操作。C#作为.NET框架的一部分,提供了全面支持正则表达式的类库,使得开发人员能够方便地利用正则表达式进行复杂的文本处理任务。在这个...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据...通过深入学习这些知识点,你将能熟练掌握正则表达式,从而在编程中更高效地处理字符串,解决各种文本处理问题。
正则表达式是一种强大的文本...每个文档都可能涵盖特定语言的正则表达式用法和示例,帮助你在实践中提升对正则表达式的掌握。无论是进行简单的文本查找,还是进行复杂的数据提取和验证,这些教程都将是你宝贵的资源。
正则表达式(Regular Expression,简称regex)是编程领域中一种强大的文本处理工具,它用于在字符串中查找、...通过学习和使用这些文件,你可以掌握如何利用正则表达式进行复杂的文本处理任务,提升你的C语言编程能力。
本书提供大量经典简洁的示例,从零开始教你逐步掌握正则表达式。通过匹配特定单词、字符和模式,读者很快就可以自己动手使用正则表达式匹配、提取和转换文本。正则表达式是程序员必备的强大工具,得到了各种Unix实用...
知道正则表达式引擎是如何工作的有助于你很快理解为何某个正则表达式不像你期望的那样工作。有两种类型的引擎:文本导向(text-directed)的引擎和正则导向(regex-directed)的引擎。Jeffrey Friedl 把他们称作 DFA 和 ...
在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换和分析字符串。在Java编程语言中,正则表达式被广泛应用于数据验证、文本提取和字符串操作。以下是对这些...
根据给定文件的信息,我们可以提炼出关于正则表达式的几个重要知识点,并对这些知识点进行详细的阐述。 ### 一、正则表达式基础知识 #### 1.1 什么是正则表达式? 正则表达式(Regular Expression)是一种强大的...
正则表达式整理汇总,含以下内容 [1]里面在包括一个正则表达式测试小程序 RegexTester.exe [2]正则表达式30分钟入门教程.pdf] [3]正则表达式规则.doc [4]正则表达式30分钟入门教程.mht 自己整理用的,现在...
在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换、分割等操作。在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过一套特定的语法,允许用户定义复杂且灵活的模式来描述字符串的结构和内容。以下是一些关于正则表达式的基本概念和常用元字符的详细...
正则表达式是一种特殊的文本模式,用于在字符串中查找和匹配符合特定规则的子串。它是文本处理不可或缺的工具之一,广泛应用于编程语言、文本编辑器、搜索引擎以及各种编程和脚本语言中。正则表达式的能力远超简单的...