У меня есть это регулярное выражение: ^\/\*
, чтобы проверить, содержит ли файл эти два символа в начале. Я повторяю много исходных файлов C++, пытаясь понять, какая из них содержит это. Проблема заключается в том, что если файл содержит это:Почему это регулярное выражение работает неправильно?
#include <source.h>
/* this is a comment */
это также соответствует регулярному выражению. Я не понимаю, почему, поскольку в регулярном выражении нет многострочного флага.
Вот код для регулярного выражения:
multi = /^\/\*/
Почему не это соответствие только в начале текста? Вот в принципе все, что я делаю:
data = File.read(filename)
if data =~ multi
puts "file starts with multiline header"
end
Этот вид sux. Является ли это только рубином или все языки имеют это? – Geo
В большинстве языков есть переключатель под названием «многострочный режим», который заставляет их вести себя так, но Ruby - единственный, который я знаю, который делает это по умолчанию. Многострочный режим Perl выглядит так: '/^test/m' – Andomar