减号似乎不指定范围并转义右括号

mrw*_*t10 0 ruby regex

关于以下针对Ruby的Poignant Guide的以下正则表达式,我有两个问题:

1:这里的减号是什么意思?它似乎没有指定一个范围,因为除了支架之外,它的左边没有任何东西.

2:为什么有必要逃避右括号?在逃离开头之后,右括号有什么特殊含义?

   /\([-\w]+\)/
Run Code Online (Sandbox Code Playgroud)

Cas*_*yte 5

1)当减号位于字符类的开头或结尾时,它被视为字面值.

2)转义右括号是一种约定.目标是IMO,以避免之前可能的开括号含糊不清.考虑这些例子:

/(\([-\w]+\))/    or     /(\([-\w]+)\)/ 
Run Code Online (Sandbox Code Playgroud)