AS3
中的正则表达式
一、
定义方式,可以有两种
var
pattern1:RegExp
=
new
RegExp(
"
test-\\d
"
,
"
i
"
);
var
pattern2:RegExp
=
/
test
-
\d
/
i;
1)
使用
new
来新建一个
RegExp
对象,其中参数为
1
)表达式字符串
2
)表达式的参数,这种方式如果要用
\,
一定要用
\\
来转义。
2)
直接采用
/
形式,以把表达式的内容写到
/……./
里面,在后面跟上表达式的参数,参数字符可以同时添加多个,例如:
/………/gi
二、
参数介绍
1)
Dotall
属性,用
s
字符表示参数,指定字符(
.
)在表达式里是不是匹配新行,如果使用了
s
参数,那就表示
dotall
表示真
例:
var
str:String
=
"
<p>Hello\n
"
+
"
again</p>
"
+
"
<p>Hello</p>
"
;
var
pattern:RegExp
=
/<
p
>
.
*?<
\
/
p
>/
;
trace(pattern.dotall)
//
false
trace(pattern.exec(str));
//
<p>Hello</p>
pattern
=
/<
p
>
.
*?<
\
/
p
>/
s;
trace(pattern.dotall)
//
true
trace(pattern.exec(str));
2)
Extended
属性,用
x
参数表示,指是否在表达式定义的时候是否忽略空格
例:
var
rePhonePattern1:RegExp
=
/
\d
{
3
}
-
\d
{
3
}
-
\d
{
4
}
|
\(\d
{
3
}
\)\s
?
\d
{
3
}
-
\d
{
4
}
/
;
var
str:String
=
"
The phone number is (415)555-1212.
"
;
trace(rePhonePattern1.extended)
//
false
trace(rePhonePattern1.exec(str));
//
(415)555-1212
var
rePhonePattern2:RegExp
=
/
\d
{
3
}
-
\d
{
3
}
-
\d
{
4
}
|
\( \d
{
3
}
\) \
?
\d
{
3
}
-
\d
{
4
}
/
x;
trace(rePhonePattern2.extended)
//
true
trace(rePhonePattern2.exec(str));
//
(415)555-1212
3)
global
属性,用
g
参数表示,指是否用表达式在匹配以后在下次匹配的时候是从头再来还是从上次匹配过的地方开始,其
lastIndex
属性会保存起来。
例:
var
pattern:RegExp
=
/
foo\d
/
;
var
str:String
=
"
foo1 foo2
"
;
trace(pattern.global);
//
false
trace(pattern.exec(str));
//
foo1
trace(pattern.lastIndex);
//
0
trace(pattern.exec(str));
//
foo1
pattern
=
/
foo\d
/
g;
trace(pattern.global);
//
true
trace(pattern.exec(str));
//
foo1
trace(pattern.lastIndex);
//
4
trace(pattern.exec(str));
//
foo2
4)
ignoreCase
属性,用
i
参数表示,指表达式匹配的时候是否区别大小写。
例:
var
pattern:RegExp
=
/
bob
/
;
var
str:String
=
"
Bob bob
"
;
trace(pattern.ignoreCase);
//
false
trace(pattern.exec(str));
//
bob
pattern
=
/
bob
/
i;
trace(pattern.ignoreCase);
//
true
trace(pattern.exec(str));
//
Bob
5)
lastIndex
属性,指定下次查询的起始位置,这个属性影响两个方法
exec()
和
test()
,
match()
,
replace()
,
search()
方法是忽略这个属性的,他们总是从头开始的。
这个属性要和
global
结合使用,当
global
为
true
时,执行
exec()
和
test()
后,
lastIndex
属性会被设置为下一个字符,如果是
false
,则会从头开始。
例:
6)
multiline
属性,用
m
参数表示,指表达式匹配的时候用字符(
^
)和(
$
)分别表示在之前或之后有新的一行。
例:
var
pattern:RegExp
=
/^
bob
/
;
var
str:String
=
"
foo\n
"
+
"
bob
"
;
trace(pattern.multiline);
//
false
trace(pattern.exec(str));
//
null
pattern
=
/^
bob
/
m;
trace(pattern.multiline);
//
true
trace(pattern.exec(str));
//
bob
7)
source
属性,返回表达式的定义字符串。
例:
var
re1:RegExp
=
/
aabb
/
gi;
trace (re1.source);
//
aabb
var
re2:RegExp
=
new
RegExp(
"
x+y*
"
,
"
i
"
);
trace(re2.source);
//
x+y*
三、
方法介绍
1)
Exec()
方法:
i.
输入:传入一个
String
类型的参数,表示要查询的字符串。
ii.
返回:如果没有匹配到就返回
null
,否则返回一个
Object
对象。
这个
Object
对象的属性:
a)
一个
Array
(数组),元素
0
包含一个匹配得到的子串,
1
到
n
包含,其中定义的组所匹配的字符子串
b)
Index
匹配子串在字符串里的位置
c)
Input
输入的原始字符串。
例:
var
myPattern:RegExp
=
/
(\w
*
)sh(\w
*
)
/
ig;
var
str:String
=
"
She sells seashells by the seashore
"
;
var
result:Object
=
myPattern.exec(str);
trace(result);
输出:
-
result[0]
是”she”
-
result[1]
是一个空串(
第一个\w
是匹配到空的子串)
-
result[2]
是”e”
-
result.index
是0
-
result.input
是”
She sells seashells by the seashore”
设置了g(global)
属性的例子:
var
myPattern:RegExp
=
/
(\w
*
)sh(\w
*
)
/
ig;
var
str:String
=
"
She sells seashells by the seashore
"
;
var
result:Object
=
myPattern.exec(str);
while
(result
!=
null
)
{
trace ( result.index,
"
\t
"
, result);
result
=
myPattern.exec(str);
}
输出:
0
She,,e
10
seashells,sea,ells
27
seashore,sea,ore
2)
Test()
方法:
i.
输入:传入一个
String
类型的参数,表示要查询的字符串。
ii.
返回:如果匹配返回
true
,否则返回
false.
例:
var
re1:RegExp
=
/
\w
/
g;
var
str:String
=
"
a b c
"
;
trace (re1.lastIndex);
//
0
trace (re1.test(str));
//
true
trace (re1.lastIndex);
//
1
trace (re1.test(str));
//
true
trace (re1.lastIndex);
//
3
trace (re1.test(str));
//
true
trace (re1.lastIndex);
//
5
trace (re1.test(str));
//
false
四、
综合例子:
package
{
import flash.display.Sprite;
public class RegExpExample extends Sprite
{
public
function
RegExpExample()
{
var
formalGreeting:String
=
"
Hello, John Smith.
"
;
trace(informalizeGreeting(formalGreeting));
//
Hi, John.
var
validEmail:String
=
"
name@domain.com
"
;
trace(validateEmail(validEmail));
//
true
var
invalidEmail:String
=
"
foo
"
;
trace(validateEmail(invalidEmail));
//
false
var
validPhoneNumber:String
=
"
415-555-1212
"
;
trace(validatePhoneNumber(validPhoneNumber));
//
true
var
invalidPhoneNumber:String
=
"
312-867-530999
"
;
trace(validatePhoneNumber(invalidPhoneNumber));
//
false
}
private
function
informalizeGreeting(str:String):String
{
var
pattern:RegExp
=
new
RegExp(
"
hello, (\\w+) \\w+
"
,
"
i
"
);
return
str.replace(pattern,
"
Hi, $1
"
);
}
private
function
validateEmail(str:String):Boolean
{
var
pattern:RegExp
=
/
(\w
|
[_.\
-
])
+
@((\w
|-
)
+
\.)
+
\w
{
2
,
4
}
+/
;
var
result:Object
=
pattern.exec(str);
if
(result
==
null
)
{
return
false
;
}
return
true
;
}
private
function
validatePhoneNumber(str:String):Boolean
{
var
pattern:RegExp
=
/^
\d
{
3
}
-
\d
{
3
}
-
\d
{
4
}
$
/
;
var
result:Object
=
pattern.exec(str);
if
(result
==
null
)
{
return
false
;
}
return
true
;
}
}
}
分享到:
相关推荐
在AS3(ActionScript 3)中,正则表达式的实现主要依赖于`RegExp`类。 - **`.`**:匹配任意字符(除了换行符) - **`^`**:匹配输入字符串的开始位置 - **`$`**:匹配输入字符串的结束位置 - **`*`**:前面的子...
正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换或者提取特定模式。在VBA(Visual Basic for Applications)环境中,正则表达式可以极大地增强你在Excel、Word等Office应用中的数据处理能力。...
在BGP中,正则表达式主要用于AS-PATH的过滤,使得网络管理员能够精确地控制哪些路由信息应该被接受或拒绝。 #### 二、BGP_AS-PATH正则表达式的语法元素 - **特殊元字符**:这些字符在正则表达式中有特殊的含义,...
正则表达式是一种用于匹配字符串中字符组合的工具。它由一个或多个字符及特殊的字符元组成,能够帮助我们执行复杂的字符串搜索和替换任务。在Oracle数据库中,正则表达式的应用非常广泛,例如用于数据有效性验证、...
在Excel表格处理中,正则表达式是一种强大的文本匹配工具,可以帮助我们进行复杂的数据验证、查找和替换操作。虽然默认情况下,WPS Excel并不直接支持正则表达式,但通过其自定义函数功能,我们可以创建自己的函数来...
Flash AS2.0 常用的正则表达式
正则表达式(Regular Expression)则是VB.NET中用于处理和匹配文本的强大工具,广泛应用于数据验证、文本提取、替换等场景。本手册将深入探讨VB.NET中的正则表达式及其应用。 一、正则表达式基础 正则表达式是一组...
3. **Visual Basic中的正则表达式** - **引用库**:在VB中使用正则表达式,需要引入`System.Text.RegularExpressions`命名空间。 - **Regex对象**:创建`New Regex("pattern", RegexOptions)`实例,`Options`参数...
在VB(Visual Basic)环境中结合Word应用程序,正则表达式可以帮助开发者实现更复杂的文本操作功能,比如文档清理、数据提取、格式校验等。下面将详细介绍VB如何使用正则表达式,并结合Word应用进行实际操作。 首先...
本文将详细介绍如何在文件中使用正则表达式查找不同的值,并去除重复项。 首先,我们需要理解什么是正则表达式。正则表达式是由字符、特殊符号和操作符组成的模式,用于匹配字符串。例如,`\d{3}-\d{4}`可以用来...
2. **创建Regex对象**:创建一个`Regex`对象,如`Dim regex As New Regex("你的正则表达式")`,这里的"你的正则表达式"是符合你要验证的模式的字符串。 3. **正则表达式语法**:学习正则表达式的语法至关重要,例如...
在IT行业中,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,用于匹配、查找、替换或验证字符串模式。在VB.NET编程环境中,正则表达式库提供了丰富的功能,使得开发者能够轻松地处理复杂的...
3. **执行匹配**:使用`Execute`方法来执行正则表达式并获取匹配结果。它返回一个MatchCollection对象,包含了所有匹配的子串: ```vb Dim matches As MatchCollection Set matches = regex.Execute("your_string...
正则表达式(Regular Expression),简称“regex”或“regexp”,是一种强大的文本模式匹配工具,广泛应用于多种编程语言中,用于进行复杂的文本搜索和处理任务。尽管正则表达式的概念并非VBA所独有,但在Excel VBA...
Java正则表达式测试器是一款强大的工具,专为在Java环境中进行正则表达式测试而设计。它使得开发者能够在编写和调试正则表达式时节省大量时间和精力,避免了传统方式下反复试错的繁琐过程。这个工具的核心功能是提供...
在ActionScript 3.0(AS3)中,正则表达式作为一种强大的文本处理工具被引入,它能够帮助开发者高效地进行字符串搜索、替换和解析等操作。正则表达式由多个部分组成,包括元字符、元序列、标志以及数量表达符,下面...