与或非实习day08

---恢复内容开始---正则表达式

今天的练习正则表达式:windows

 

建议 30 分钟学习 :http://deerchao.net/tutorials/regex/regex-1.htm
比赛网站: https://alf.nu/RegexGolf函数

 

什么是正则表达式?

正则表达式也是用来进行文本匹配的工具,只不过比通配符更能精确地描述你的需求工具

 

\d+就是一个简洁的代码,表明着规则1位或更多位数字 2008就符合这个规则,而A3则不符合(它包含了不是数字的字符)学习

\b是正则表达式规定的一个特殊代码,表明着单词的开头或结尾  \bhi\b。测试

假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。 网站

 

.是另外一个特殊代码,表明除了换行符之外的任意字符。*一样是特殊的代码,不过它表明的不是字符,也不是位置,而是数量--它指定*前边的内容能够重复任意次以使整个表达式获得匹配。.*连在一块儿就意味着任意数量的不包含换行的字符。如今\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,而后是任意个任意字符(但不能是换行),最后是Lucy这个单词spa

0\d\d-\d\d\d\d\d\d\d\d表明着这样的字符串:以0开头,而后是两个数字,而后是一个连字号“-”,最后是8个数字(也就是中国的电话号码,固然,这个例子只能匹配区号为3位的情形,.net

 

数字的出现是表明前面能够出现多少次code

表达式:0\d{2}-\d{8}    这里\d后面的{2}({8})指定的是前面\d必须连续重复出现2次(8次)。

 

如今你已经知道几个具备特殊意义的代码了,如\b,.,*,还有\d.事实上还有更多的特殊代码,好比\s表明任意的空白符,包括空格,制表符(Tab),换行符。\w表明着字母或数字。

 

 

 QQ号必须为5位到12位数字时,可使用:^\d{5,12}$

 

字符转义

若是你想查找特殊代码自己的话,好比你查找.,或者*,就出现了问题:你无法指定它们,由于它们会被解释成其它的意思。这时你就必须使用\来取消这些字符的特殊意义。所以,你应该使用\.和\*。固然,要查找\自己,你也得用\\.

例如:deerchao\.cn匹配deerchao.cn,c:\\windows匹配c:\windows,2\^8匹配2^8(一般这是2的8次方的书写方式)。

 

 

字符类

咱们也能够轻松地指定一个字符范围,像[0-9]表明的含意与\d就是彻底一致的

一位数字,同理[a-z0-9A-Z]也彻底等同于\w

 

复杂的表达式:\(?0\d{2}[) -]?\d{8}。几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等

反义(大写就是反义【^这要写在里面才是反的,写在外面是以什么开头】)

 

 

若是想要重复一个字符串又该怎么办?

你能够用小括号来指定子表达式(也叫作分组),

 

 \b\w*q[^u]\w*\b匹配包含后面不是字母u的字母q的单词。可是若是多作测试(或者你思惟足够敏锐,直接就观察出来了),你会发现,若是q出如今单词的结尾的话,像Iraq,Benq,这个表达式就会出错。

---恢复内容结束---

 

 

exp.replace(/\s/g, ''):是正则表达式匹配字符串,其中"/ /"这个是固定写法,"\s"是转移符号用以匹配任何空白字符,包括空格、制表符、换页符等等,"g"表示全局匹配将替换全部匹配的子串,若是不加"g"当匹配到第一个后就结束了。这个例子的意思就是将原字符串中的全部空白字符替换成"",好比"abc d efg "字样的字符串使用这个函数后将变成"abcdefg"。
相关文章
相关标签/搜索