正则表达式学习小记
这几天一直在努力的学习很多东西,因为是自学,走了很多弯路。特别是看到一些比较难得知识点时,心理总是很焦急,而且能够影响学习效率的东西太多了。一个安静的环境,自由的环境,舒缓的心情感觉真的很重要。就像今天下午的我,心理感觉总是乱糟糟的,一会想做这个一会想做那个,结果一个下午什么也没干成。蛋疼啊!
大四了,找工作的鸭梨是真真切切的来了。突然感觉公司要求的技术自己一点都不懂,然后就华丽丽的急了。面试了两次,我就放下了。感觉这样的自己很难找到好的工作,还是赶紧静下心来学习吧!毕竟只要知道学习就不会太晚,给自己制定了一个方向:网站。因为专业已经学习了java,就找相关的资料啊 视频的学习起来:html-->css-->javascript-->jsp-->php-->jsp。大概就是这么一个路线吧!虽然这几天好多人都在我跟前说:这个技术前景不怎么好,让我学习ios啊什么的移动开发。可是我感觉既然自己有java的基础就要好好利用,毕竟技术在于:精。好吧,不扯了!进入主题!
今天学习的是正则表达,因为在以前的学习和这段时间的javascript等学习发现正则表达式正的很重要、很方便、很实用。就想着好好学习学习,了解一番。找了个正则表达式30分钟入门教程就看了起来,现在看的基本有个眉目了。打算再看一遍,把该注意的地方和自己的测验写出来,做个记录。
正则表达式
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
在上表中的\b、^、$ 元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$
这里需要说明的是:在大多数时候 上面的^和\A、$和\Z是可以互换使用的,但是要注意的是它们必须对应出现,即^和$、\A和\Z
如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因 此,你应该使用\.和\*。当然,要查找\本身,你也得用\\.
例如:deerchao\.net匹配deerchao.net,C:\\Windows匹配C:\Windows。
要想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母a,e,i,o,u),应该怎么办?
很简单,你只需要在方括号里列出它们就行了,像[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。
*** 这里我们要重点理解一下[.?!]这个例子:上面我们已经记录了 . 对!就是这个点号,我们说当点号在字符串中[.]和转义\.时只能匹配点号本身,
所以这里的[.?!]匹配的就是(.或?或!)
现在我们来看看一个例子:\(?0\d{2}[) -]?\d{8}
首先是一个转义字符\来转义( 后面的?表示出现的次数0或1次,然后是匹配数字0,然后匹配一个数字(\d)重复两次{2},然后就是一个字符类[) -]后面的?同样表示[]中的三个字符出现0或1次,让后就是数字字符重复出现8次 像(010)88886666,或022-22334455,或02912345678等