此对象包含正则表达式模式以及标识如何应用该模式的标志。
// The explicit constructor for a Regular Expression object. function RegExp(pattern : String [,flags : String]) function RegExp(regexObj : System.Text.RegularExpressions.Regex) // The implicit constructor for a Regular Expression object. /pattern/[flags]
- pattern
必选。要使用的正则表达式模式。如果使用语法 1,则模式必须为字符串。如果使用语法 2,模式将由“/”字符分隔。
- flags
-
g(全局搜索出现的所有 pattern)
-
i(忽略大小写)
-
m(多行搜索)
可选项。如果使用语法 1,则标志必须处于字符串中。如果使用语法 2,标志字符将紧接在最后一个“/”字符之后。可以组合使用的可用标志有:
- regexObj
必选。包含要使用的正则表达式模式的 Regex 对象。
正则表达式对象不应与全局 RegExp 对象混淆。它们虽然看起来相似,但也可以很容易地加以区分。正则表达式对象的属性只包含有关一个特定正则表达式实例的信息,而全局 RegExp 对象的属性则包含有关所发生的每一匹配的不断更新的信息。
正则表达式对象存储用于搜索字符组合的字符串的模式。当创建正则表达式对象后,会将该对象传递到字符串方法,或者给字符串传递正则表达式对象的方法。有关最近执行的搜索的信息存储在全局 RegExp 对象中。
当搜索字符串频繁更改或未知时(例如从用户输入导出的字符串),应使用语法 1。当您提前知道搜索字符串时,应使用语法 2。
在 JScript 中,pattern 参数将在使用之前编译为内部格式。对于语法 1,pattern 正好在使用之前进行编译或者在调用 compile 方法时进行编译。对于语法 2,pattern 在脚本加载时编译。
注意 |
---|
正则表达式对象可以与 JScript 中的 .NET Framework System.Text.RegularExpressions.Regex 数据类型互用。但是,其他公共语言规范 (CLS) 语言不能使用正则表达式对象,因为只有 JScript 提供此对象;它不是从 .NET Framework 类型派生的。因此,当对参数和符合 CLS 的方法的返回类型进行类型批注时,请确保使用 System.Text.RegularExpressions.Regex 数据类型,而不是“正则表达式”对象。然而,可以使用“正则表达式”对象对标识符(而不是参数或返回类型)进行类型批注。有关更多信息,请参见编写符合 CLS 的代码。 |
下面的示例阐释正则表达式对象的用法。它将创建对象 re1 和 re2,这两个对象包含带有关联标志的正则表达式模式。在这种情况下,match 方法将在随后使用所得到的正则表达式对象:
var s : String = "The rain in Spain falls mainly in the plain"; // Create regular expression object using Syntax 1. var re1 : RegExp = new RegExp("Spain","i"); // Create regular expression object using Syntax 2. var re2 : RegExp = /IN/i; // Find a match within string s. print(s.match(re1)); print(s.match(re2));
该脚本的输出为
Spain in要求属性和方法请参见
参考
new 运算符RegExp 对象
String 对象
Regex