码迷,mamicode.com
首页 > 编程语言 > 详细

外文翻译——JavaScript Tutorial——Regular Expression——(2)

时间:2016-07-30 22:17:22      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

字符类

假设我们要在字符串中查找一个数字。不是指定的数字,而是任意数字,比如:在"Only 1"中查找"1",在"Give me a 5"中查找"5"。

子串匹配可以在循环中用来查找0-9中的所有数字。但是采用正则式可以更优雅地处理这种情况。

正则式可以利用字符类代替具体的字符。

例如,正则式中用"\d"来表示任意数字。下面例子中匹配了一个数字:

 

1 showMatch( "I‘m 5 years old", /\d/ )   // 5

 

最常用的字符类有:

\d:0-9中的任意数字;

\s:空白字符,如tab缩进,换行符等;

\w:拉丁字母,数字或者下划线;

一个正则式可能把字符类和普通标记包含在一起:

1 showMatch( "I‘m the 1st one", /\dst/ )   // matches ‘1st‘

下面代码的正则式中包含几个字符类一起:

1 showMatch( "I‘m 1 year old", /\d\s\w\w\w\w/ )   // 1 year

技术分享

 

这里还有一些反义的字符类:

\D:非数字;

\S:非空白字符;

\W:非拉丁字母,数字或者下划线;

例如,查找第一个非字母字符:

 

1 showMatch( "I‘m 1 year old", /\W/ )   // matches apostrophe ‘

 

正则式还可以包含不可打印的字符串字符:\n(换行符), \t(制表符)等。这些很明显只是字符,而不是字符类。

空格非常重要!

通常情况下,我们不怎么在意空格。"1-5"和"1 - 5"看起来没什么两样。

但是在正则式中,空格和其他标识是一样的

下面的正则式无法正确运行,因为没有包含空格标识符:

 

1 showMatch( "1 - 5", /\d-\d/ )  // no matches!

 

让我们来修改一下。我们可以把空格标识放在正则式中,或者最好把空格包含进去:

1 showMatch( "1 - 5", /\d - \d/ )   // works
2 showMatch( "1 - 5", /\d\s-\s\d/ ) // also works
3 showMatch( "1-5", /\d - \d/ ) // fails! (no spaces in string)

最后一个匹配失败,因为例子中没有空格。所以不要把多余的空格放在正则式中,它们都是有意义的。

在正则式中,点"."表示除换行符以外的任意字符:

1 showMatch( "A char", /ch.r/ ) // "char"
2 showMatch( "A ch-r", /ch.r/ ) // "ch-r"
3 showMatch( "A ch r", /ch.r/ ) // "ch r", the space is also a char

虽然点"."可以表示所有字符,但是必须要有字符:

1 showMatch( "A chr", /ch.r/ ) // not found

 

外文翻译——JavaScript Tutorial——Regular Expression——(2)

标签:

原文地址:http://www.cnblogs.com/zysos2016/p/5721706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!