Ruby 为什么自由间距模式会阻止负向后看工作?
考虑以下Ruby代码:Ruby 为什么自由间距模式会阻止负向后看工作?,ruby,regex,Ruby,Regex,考虑以下Ruby代码: /(?<!big )dog/.match('I have a big dog.') # => nil /(?无 现在,我将启用自由间距模式: /(?x)(?<!big )dog/.match('I have a big dog.') # => #<MatchData "dog"> /(?x)(?)# 为什么会发生这种情况?我如何在不破坏负面外观的情况下启用自由间距模式?在特定子表达式中禁用它也可能是一
/(?<!big )dog/.match('I have a big dog.') # => nil
/(?无
现在,我将启用自由间距模式:
/(?x)(?<!big )dog/.match('I have a big dog.') # => #<MatchData "dog">
/(?x)(?)#
为什么会发生这种情况?我如何在不破坏负面外观的情况下启用自由间距模式?在特定子表达式中禁用它也可能是一个选项:
/(?x)(?-x:(?更多选项以匹配空格:\x20
(十六进制)和\040
(八进制)
/(?x)(?<!big )dog/.match('I have a big dog.')
# ^
/(?x)(?<!big\s)dog/.match('I have a big dog.')
# => nil