`
jiangduxi
  • 浏览: 445244 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

正则表达式的学习

阅读更多
今天想写一个验证邮箱的正则表达式,发现自己原来不会。那没办法了,只有请出google来学习下,发现这个正在表达式还是有点不好搞!下面的介绍一点我学到的吧!
通过google收到一篇名叫《正则表达式30分钟入门教程》http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
如想知道的更详细就点击去看看吧!
由于也是应急所以只看一些。
这里就不废话去说什么是正则表达式了。直接给出一些关键信息
引用

1. 常用元字符
代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

知道了上面的常用元字符千万不要忘了字符转义(\)。什么叫转义就不解释了。列个例子
例如:C:\\Windows匹配的是C:\Windows
      unibetter\.com 匹配unibetter.com
     String eL="\\d{6}":匹配的是6位数字。
使用转义符(\)就是声明不要解释错。使用(\)来取消一些字符的特殊意义。
注意:[0-9]和\d的含义一样
      [a-z0-9A-z]和\w也是一样的

引用

2.常用的限定符
代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

给出点消化剂吧
例如:
  abc\d+:表示匹配abc后面跟1个或更多数字

接下来就有点难度了,大家都知道一般任何事情都有规则。这个正则表达式同样也可以设置规则,不过它叫分枝条件。和程序的流程图中的分支流有那么类似。

它们给消化即
  当你碰到一个结果可以由几个不同的方式得到。而你又想使用正则那么就必须使用分枝了。
  0\d{2}-\d{8}|0\d{3}-\d{7}:这个表示匹配两种以连字符分隔的电话号码:
一种是0\d{2}-\d{8}例如(010-12345678)
一种是0\d{3}-\d{7}例如(0799-1234567)
通过上面的例子就知道分枝是使用(|)。

注意:在使用分枝的时候,记住分枝是有顺序的,从左到右,如果满足靠左边的某个分枝,那么它就不再去管其他的条件了。
例如:\d{5}-\d{4}|\d{5}:表示匹配5位数字加一个连接字符加4位数字或者直接是5位数字
如果你将\d{5}-\d{4}和\d{5}那么就导致一个分支不执行。
其实你可以将(|)看出是或运算。

引用

3.常用的反义代码
代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或者结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了ariou这个字母以外的任意字符


引用

4.懒惰限定符
代码/语法说明
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复


以上就是简单的从Google得到的一些正在表达式。如果想详细的学习正则表达式那么你也得使用google法宝了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics