为什么这个正则表达式不能正常工作?

Geo*_*Geo 2 ruby regex

我有这个正则表达式:^\/\*检查文件是否在开头包含这两个字符.我正在迭代许多c ++源文件,试图看看它们包含哪些.问题是,如果文件包含这个:

#include <source.h>

/* this is a comment */
Run Code Online (Sandbox Code Playgroud)

这也匹配正则表达式.我不明白为什么,因为正则表达式没有多行标志.

这是正则表达式的代码:

multi = /^\/\*/
Run Code Online (Sandbox Code Playgroud)

为什么这个匹配只在文本的开头?这基本上就是我正在做的一切:

data = File.read(filename)
if data =~ multi
   puts "file starts with multiline header"
end
Run Code Online (Sandbox Code Playgroud)

And*_*mar 5

^每个换行后的Ruby 匹配中.用于\A仅匹配整个字符串的开头:

multi = /\A\/\*/
Run Code Online (Sandbox Code Playgroud)