带有新行的Ruby Regexp字符类,为什么不匹配?

时间:2016-12-03 05:25:11

标签: ruby

我想使用此正则表达式来匹配字符串中的任何块注释(c样式)。 但为什么下面没有?

rblockcmt = Regexp.new "/\\*[.\s]*?\\*/"  # match block comment
p rblockcmt=~"/* 22/Nov - add fee update */"

==> nil 

1 个答案:

答案 0 :(得分:1)

看来你打算[.\s]*?懒散地匹配任何字符或空格,零次或多次。首先,空格是字符,因此您不需要\s。这简化了您对[.]*?的表达。其次,如果您的意图是匹配任何角色,则不需要角色类,只需编写.即可。第三,,最重要的是,字符类中的句点只是字符"."

您需要.*?(或[^*]*)。

相关问题