正则表达式不匹配,但为什么?

时间:2012-10-29 15:09:38

标签: ruby regex

我必须关注正则表达式:

(\/\*\*)([\s[:graph:]]*@brief[\s[:graph:]]*\r)( \*\/)

我正在尝试检查以下内容:

/**
    @brief TestViewController

    <##full description#>

    @see UIViewController
    @ingroup <##group/module#>

    @date 2012-10-29
 */
@interface LaunchViewController : UIViewController {

在代码变量中。

它不会匹配,检查方式:

if @code =~ /(/*\*)([\s[:graph:]]*@brief[\s[:graph:]]*\r)( \*\)/
    puts "found----------" 
end

我也是这样尝试的:

r = Regexp.new(Regexp.quote('/') + Regexp.quote('**') + '[\s[:graph:]]*@brief[\s[:graph:]]*\r ' + Regexp.quote('*/'))

任何人都可以帮我解决这个问题吗?

在这种情况下,我对小组不感兴趣,所以请不要怀疑有一个小组,另一个没有小组。

1 个答案:

答案 0 :(得分:2)

Ruby通常不会在换行符中包含\r。如果将正则表达式更改为:

/(\/\*\*)([\s[:graph:]]*@brief[\s[:graph:]]*)( \*\/)/

我得到一场比赛。