T0n*_*rdi 0 ruby regex expression
我正在寻找搜索一些文件,看看他们是否在文件顶部有评论.
这是我正在寻找的:
#++
# app_name/dir/dir/filename
# $Id$
#--
Run Code Online (Sandbox Code Playgroud)
我把它作为一个REGEX并且做得很短:
:doc => { :test => '^#--\s+[filename]\s+\$Id'
if @file_text =~ Regexp.new(@rules[rule][:test])
....
Run Code Online (Sandbox Code Playgroud)
有什么建议?
检查此示例:
string = <<EOF
#++
## app_name/dir/dir/filename
## $Id$
##--
foo bar
EOF
puts /#\+\+.*\n##.*\n##.*\n##--/.match(string)
Run Code Online (Sandbox Code Playgroud)
该模式匹配两行,##从两行开始,#++以#--plus 开头并以plus 结尾,包括匹配中的那些边界.如果我的问题是正确的,这应该是你想要的.
您可以使用以下模式概括模式以匹配第一个#++和第一个 之间的所有内容#--(包括它们):
puts /#\+\+.*?##--/m.match(string)
Run Code Online (Sandbox Code Playgroud)