除了Javascript的^
和$
等同于Ruby的\A
和\z
之外,两个正则表达式引擎之间还存在哪些细微差别?
我正在寻找相同的正则表达式可能表现不同的细微差别,例如/^abc$/
将在Ruby中匹配:
123
abc
def
但它在Javascript中不匹配。
答案 0 :(得分:17)
Ruby支持的功能,但不支持JavaScript:
\a
(铃)\e
(逃脱)\A
(字符串的开头)\Z
(字符串结尾,最后换行符之前)\z
(字符串结尾)\1
至\9
(?>regex)
(原子组)\G
(比赛尝试开始)(?#comment)
#
发表评论[:alpha:]
POSIX字符类(?i)
(不区分大小写)(JavaScript仅支持/i
)(?s)
(点与换行符匹配)(?m)(?m)
(^
和$
在换行符匹配)(/m
仅限JavaScript)(?x)
(自由间隔模式)(?-ismxn)
(关闭模式修饰符)(?ismxn:group)
(本地模式修改器)JavaScript支持的功能,但不支持Ruby:
\cA
至\cZ
(控制角色)\ca
至\cz
(控制角色)\u0000
到\uFFFF
(Unicode字符)来源: