Java和ECMA-262(AS,JS)中正则表达式之间的差异

时间:2011-06-22 12:14:58

标签: java javascript regex actionscript-3 ecma262

我需要将Java正则表达式转换为Actionscript正则表达式。

显然没有任何预制转换器,所以我试图自己写一个。是否有任何资源列出所有差异?

我知道regular-expressions.info,但似乎并没有全面的差异列表。

由于

3 个答案:

答案 0 :(得分:7)

我不知道任何现有的转换器,但如果您的目标是专门的ActionScript而不仅仅是任何ECMA-262实现,那么该作业可能比您预期的更容易。 AS3由PCRE提供支持,与PHP的preg_函数相同,因此它支持lookbehind,原子组和占有量词,与Java相同。除了JS的 ignore-case multiline 之外,它还支持Java的 dotall 扩展模式。它也支持内联修饰符语法((?imsx))。

PCRE的Unicode支持比Java更好,但遗憾的是,我不认为它包含在ActionScript中。 Unicode功能似乎与字符编码明确相关,即PCRE中的UTF-8;我相信ActionScript根据ECMA-262使用UTF-16。无论如何,它的Unicode支持似乎很小,与JavaScript相同。

答案 1 :(得分:1)

以下是细分:

java.util.regex                                  RegExp.prototype
Character class set operations
(?#…) comment patterns
Named capture
The /y (sticky) modifier
The /x (extended) modifier
\u10000+ Codepoints
Possessive quantifiers
Quotation
Exception Handling
Linebreak matcher

<强>参考

答案 2 :(得分:0)