Ruby 1.9和Javascript regexp之间的差异
除了Javascript的Ruby 1.9和Javascript regexp之间的差异,javascript,ruby,regex,Javascript,Ruby,Regex,除了Javascript的^和$等同于Ruby的\A和\z,这两个正则表达式引擎之间还有什么细微的区别 我在寻找相同正则表达式可能表现不同的细微差异,例如,/^abc$/将在Ruby中匹配这一点: 123 abc def 但它在Javascript中不匹配。Ruby支持但不支持Javascript的功能: \a(贝尔) \e(转义) \A(字符串开头) \Z(字符串末尾,最后一行中断之前) \z(字符串末尾) 通过\9 对失败组的反向引用也会失败 (?>regex)(原子组) \G(开始匹配
^
和$
等同于Ruby的\A
和\z
,这两个正则表达式引擎之间还有什么细微的区别
我在寻找相同正则表达式可能表现不同的细微差异,例如,/^abc$/
将在Ruby中匹配这一点:
123
abc
def
但它在Javascript中不匹配。Ruby支持但不支持Javascript的功能:
(贝尔)\a
(转义)\e
(字符串开头)\A
(字符串末尾,最后一行中断之前)\Z
(字符串末尾)\z
- 通过
\9
- 对失败组的反向引用也会失败
(原子组)(?>regex)
(开始匹配尝试)\G
(?#注释)
- 支持自由间距语法
- 字符类是单个标记
开始评论#
POSIX字符类[:alpha::
(不区分大小写)(JavaScript仅支持(?i)
)/i
(点匹配换行符)(?m)(?s)
((?m)
和^
在换行符处匹配)($
仅在JavaScript中)/m
(自由间距模式)(?x)
(关闭模式修改器)(?-ismxn)
(组本地模式修改器)(?ismxn:组)
至\cA
(控制字符)\cZ
至\ca
(控制字符)\cz
到\u0000
(Unicode字符)\uFFFF
\uxxx
序列。从Ruby v2.2开始,还有一些Ruby正则表达式功能在JS中不可用:(?(a)b | c)条件句\p{sc}unicode属性;++所有格量词;[a[^b]]设置嵌套;[a-x&&c-z]设置交点\h六角型\k反向参考\g子表达式调用;(?