15.10.如何通过指定字符类(Explicit Character Class)来创建正则表达式

15.10.1 问题
如果你想找出一文本中包含元音的词语, 怎样通过正则表达式的指定字符来进行模式匹配呢?
15.10.2 解决办法
可以使用”[“和”]”来包含所需要进行匹配的字符, 例如: [aeiou]来包括所有元音字母。
15.10.3 讨论
如果你需要在一个文本中为不同的模式进行匹配的话, 可以在表达式中加入不同的字符标记。然后通过它们来呼叫你想进行匹配的字符类。以下是几种常用的标记:
[] (square brackets)
用来定义一个字符类, 它会包含所有可能用来匹配的字符。例如: /[aeiou]/

- (hyphen)
在一个字符类内, 可以使用”-“号来指定一个字符的范围值。例如: /[A-Z0-9]/ 就表示要跟A至Z 或者0 至9 内所有字符进行匹配。

/ (backslash) 有错, 原文用了”\”
在字符类里, 可以插入一个”\”号来分隔”]”或”-“号等字符。比如说: /[+\-]\d+/ 这个表达式, 就表示在一个或以上的数字前对”+”或”-“号进行匹配。在一些字符类里面的元字符(metacharacter), 会默认为一个普通字符来处理, 所以无须使用”/”来分隔。例如: /[$£]/ 就表示跟”$”或者“£”号进行匹配。详细情况请参考Flex 使用文档中有关字符类的部份。

| (pipe)
表示可供选择的意思, 用以选择及匹配”|” 号两旁的内容。例如: /abc|xyz/ 则表示对”abc”或”xyz”进行匹配, 只要任何一个条件乎合, 即通过匹配, 相当OR 的意思。

如果想对奇数进行匹配, 可以这样做:
+展开
-ActionScript
var reg:RegExp = /[13579]/;

想对元音字进行匹配, 可以这样做:
+展开
-ActionScript
var vowels:RegExp = /[aeiou]/;

对非元音字进行匹配的话, 可以这样做:
+展开
-ActionScript
var notVowels:RegExp = /[^aeiou]/;

值得注意的是, “^”号的使用是不只限制于括号内的。在括号外使用的话, 则表示这个字符串一定要发生在每行的开端。

加支付宝好友偷能量挖...


评论(0)网络
阅读(86)喜欢(0)flash/flex/fcs/AIR