加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在AS3中使用变量Regexp

发布时间:2020-12-15 07:31:16 所属栏目:百科 来源:网络整理
导读:使用Actionscript 3.0(在Flash CS5中) 匹配任何数字的标准正则表达式是: var myRegexPattern:Regex = /d/g; 正则表达式将字符串变量合并到匹配中会是什么样的? (此示例是’IDEAL’而不是’WORKING’代码段),即: var myString:String = "MatchThisText"va
使用Actionscript 3.0(在Flash CS5中)

匹配任何数字的标准正则表达式是:

var myRegexPattern:Regex = /d/g;

正则表达式将字符串变量合并到匹配中会是什么样的?
(此示例是’IDEAL’而不是’WORKING’代码段),即:

var myString:String = "MatchThisText"
var myRegexPatter_WithString:Regex = /d[myString]/g;

我已经看到了一些解决方法,涉及创建多个正则表达式实例,然后按来源将它们与有问题的变量结合起来,这似乎是错误的.或者使用闪存字符串来创建正则表达式创建者,但它只是简单的草率与所需的所有双重和三重转义序列.

必须有一些我在实时文档或谷歌上找不到的无痛方式. AS3甚至可以保持此功能吗?如果没有,它真的应该.

或者我错过了一个更简单的方法来简单地避免这个任务,因为我对正则表达式的新意,我也很天真?

解决方法

我实际上是在写博客,所以我只会指出你: http://tyleregeto.com/using-vars-in-regular-expressions-as3它谈到了可能的解决方案,但没有像你提到的那样理想.

编辑

以下是该博客条目重要部分的副本:

这是一个从一个文本块中剥离标记的正则表达式.

/<("[^"]*"|'[^']*'|[^'">])*>/ig

这个漂亮的表达就像一个魅力.但我想更新它,以便开发人员可以限制剥离哪些标记到数组中指定的标记.非常直接的东西,要在正则表达式中使用变量值,首先需要将其构建为字符串然后进行转换.类似于以下内容:

var exp:String = 'start-exp' + someVar + 'more-exp';
var regex:Regexp = new RegExp(exp);

挺直的.因此,当接近这个小升级时,这就是我所做的.当然,一个大问题非常清楚.

var exp:String = '/<' + tag + '("[^"]*"|'[^']*'|[^'">])*>/';

猜猜看,无效的字符串!最好逃避字符串中的引号.哎呀,这将打破正则表达!我很难过.所以我打开了语言参考,看看我能找到什么. “源”参数(我之前从未使用过)引起了我的注意.它返回一个描述为“正则表达式的模式部分”的String.它完美地完成了这个技巧.这是解决方案:

var start:Regexp = /])*>/ig;
var complete:RegExp = new RegExp(start.source + tag + end.source);

为方便起见,您可以将其减少到此:

var complete:RegExp = new RegExp(/])*>/.source + tag,'ig');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读