【发布时间】:2023-03-24 13:35:01
【问题描述】:
我正在尝试在更复杂的正则表达式上使用[[:punct:]]POSIX 括号表达式,我发现它与以下问题有关:
我在 Ruby 的 2.4.4 irb 控制台上运行了这个,产生了一个有效的匹配:
irb(main):001:0> " >text" =~ /[[:punct:]]text/
=> 1
但是,如果我添加一个 UTF8 引号字符 (”),它将不匹配:
irb(main):002:0> "” >text" =~ /[[:punct:]]text/
=> nil
但如果我使用. 而不是>,它确实可以按我的预期工作:
irb(main):003:0> " .text" =~ /[[:punct:]]text/
=> 1
irb(main):004:0> "” .text" =~ /[[:punct:]]text/
=> 2
我不是试图为此找到解决方法,而是试图理解为什么在第二种情况下不匹配。
【问题讨论】:
-
[13] pry(main)> "” >text" =~ /[[:punct:]]text/ #=> 2为我工作 -
你使用什么 ruby 版本? 4.4.5 似乎更像是 rails 版本,而不是 ruby 版本。
-
@mrzasa 抱歉,我已经更新了问题。 Ruby 的版本是 2.4.4,安装了
rbenv。
标签: ruby-on-rails regex ruby ruby-on-rails-4