教你正则表达式

我同学写了一个正者的验证,就是几个例子 。看了一下...感觉应该授之于渔...

么是正者?
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,

正则表达式就是记录文本规则的代码。
很可能你使用过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个或更多数字

好累 今天就写这么多剩下的以后些吧...谢谢大家关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
dropit正则表达式是指通过使用正则表达式来对文本进行匹配、查找和替换的一种方法。正则表达式是一种强大而灵活的工具,可以帮助我们快速准确地处理各种文本数据。 首先,我们需要了解正则表达式的基本规则和语法。正则表达式由字符和特殊字符组成,可以用来表示模式和规则。常见的特殊字符包括点号(.)、星号(*)、加号(+)、问号(?)等,它们代表了不同的匹配规则。 在dropit程中,我们可以学习如何使用正则表达式来匹配特定的文本模式。例如,如果我们想在一段文本中查找所有以大写字母开头的单词,我们可以使用正则表达式`[A-Z]\w*`,其中`[A-Z]`表示大写字母,`\w`表示任意单词字符,`*`表示匹配0个或多个前面的字符。 除了查找,正则表达式还可以用于替换文本。例如,如果我们想将一段文本中的所有数字替换为星号,我们可以使用正则表达式`\d+`来匹配数字,然后使用替换函数将其替换为星号。 另外,正则表达式还可以使用分组、量词和边界等功能来更加精确地匹配文本。通过熟练掌握正则表达式的规则和技巧,我们可以更加高效地处理各种复杂的文本操作。 在dropit程中,我们可以学习到如何编写和测试正则表达式,并将其应用于实际的文本处理任务中。无论是处理数据、验证用户输入还是解析日志文件,正则表达式都能提供强大的功能和灵活性。 总之,dropit正则表达式是一个非常有用的工具,可以帮助我们处理各种文本操作。通过学习正则表达式的语法和应用,我们能够更加高效地处理和分析文本数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值