Ruby 为什么使用此代码时REXML会出现语法错误?

Ruby 为什么使用此代码时REXML会出现语法错误?,ruby,syntax,Ruby,Syntax,我将Ruby的REXML库用于以下代码: VALID_XML_CHARS = /^( [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE][\x80

我将Ruby的REXML库用于以下代码:

  VALID_XML_CHARS = /^(
       [\x09\x0A\x0D\x20-\x7E]            # ASCII
     | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
     |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
     | [\xE1-\xEC\xEE][\x80-\xBF]{2}      # straight 3-byte
     |  \xEF[\x80-\xBE]{2}                #
     |  \xEF\xBF[\x80-\xBD]               # excluding U+fffe and U+ffff
     |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
     |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
     | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
     |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
     )*$/x;

最后一行出现语法错误,我不确定原因。有什么想法吗?

好吧,你似乎是从哪里得到这个结果的()以/nx结尾

我试过这个(1.9.2),它工作得很好。在1.8.6上对我也很好。-1你有没有试过找出哪一个最小的正则表达式首先出现了相同的语法错误?