ruby - ruby 正则表达式选项 `n` 有什么作用?

标签 ruby regex

我正在用 ruby​​ source code 阅读这一行:

m = /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in.match(str) or

我没有看到 docs 中描述的 n 选项.它有什么作用?为了正确测试,我需要一个将返回 1xx 响应的 HTTP 服务器。所以我还做不到。但它看起来像一个错误。 sock.readline 将返回类似于 "HTTP/1.1 200 OK\r\n" 的内容,这与 RE 不匹配。如果选项是 m,它会更有意义。我想知道这是否是一些未经测试的代码路径以及是否有人使用了 nm。如果是这种情况,为什么 n 不会失败?我尝试了其他随机字母,但都失败了。看一些简单的测试:

"HTTP/1.1 200 OK\r\n" =~ /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/im
#=> 0
"HTTP/1.1 200 OK\r\n" =~ /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in
#=> nil
"HTTP/1.1 200 OK\r\n" =~ /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/iz
#=> SyntaxError: (eval):2: unknown regexp option - z

最佳答案

在文档中向下滚动一点,您会发现:/pat/n - ASCII-8BIT

这会否决当前的源编码(默认为 UTF-8)

关于ruby - ruby 正则表达式选项 `n` 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49522860/

相关文章:

ruby-on-rails - 具有取决于数据库的条件范围的 Rails 模型

ruby-on-rails - 如何知道要拯救哪些异常?

ruby-on-rails - Ruby on Rails I18n 插值

Java正则表达式找不到匹配项

java - 正则表达式查找具有任何字母的精确计数的单词

ruby - RSpec 规范没有运行?

ruby - Resque with Redis To Go 无法按预期工作

javascript - 我可以编写一个正则表达式,其中一个符号匹配两次吗?

php - 需要一个好的正则表达式来将 URL 转换为链接,但保留现有链接

java - 正则表达式匹配组