Access denied, Please sign in and make sure you have proper permission.
/\A\d/
如果不是特别需要,我会用 \A
而不是 ^
,防止考虑不周带来的安全问题。
区别是:
/\A\d/ =~ "0aa" #=> 0
/^\d/ =~ "0aa" #=> 0
/\A\d/ =~ "aaa\n0" #=> nil
/^\d/ =~ "aaa\n0" #=> 4
#2 楼 @qhwa 看来 ruby 是默认开启多行匹配的,在 js 里面,如果不加 m flag,则 ^
$
的意义与 \A
\z
一样。
#3 楼 @alsotang 其实是单行模式。ruby 的单行模式中 ^
就是匹配「行首」,而不是「起始」。和 js 处理不同。
实际上 ruby 的多行模式是这样的:
# 这是单行模式
/a.b/ =~ "aaa\nbbb" #=> nil
# 这是多行模式
/a.b/m =~ "aaa\nbbb" #=> 2