在rails黄瓜中有这个正则表达式
When /^(?:|I )go to (.+)$/ do |page_name|
我知道?:
是一个非捕获组,但当它作为|
分隔的替代方案时它意味着什么?
答案 0 :(得分:7)
这不是一个特殊的群体,只是表示“不匹配或I
”:http://www.rubular.com/r/H3iJFLXaab
这应该与写(?:I )?
一样
(或更准确地说,(?:I )??
- 因为空字符串优先于I
,另请参阅Is the lazy version of the 'optional' quantifier ('??') ever useful in a regular expression?)