命名捕获组为正则表现的捕获组的一种。它利用名字来指定捕获组(当然也可以用下标引用)。它经常使用在层次复杂、难以使用下表的表达式里。
定义命名捕获组使用(?P<名字>)
的格式。
比如以下将会定义命名为digits的命名捕获组:
var myPattern:RegExp = /(?P<digits>\d+)/g; //命名捕获组 var str:String = "abc123def"; var result:Array = myPattern.exec(str); trace(result.digits); //123
再如以下将会定义name与dom两个命名捕获组分别匹配用户名与域名:
var emailPattern:RegExp =
/(?P<name>(\w|[_.¥-])+)@(?P<dom>((\w|-)+))+\.\w{2,4}+/;
var address:String = "bob@example.com";
var result:Array = emailPattern.exec(address);
trace(result.name); // bob
trace(result.dom); // example
注意,命名捕获组不是ECMA-Script定义的。为Actionscript自行扩展的。
没有评论:
发表评论