Вот пример текста, с которым я работаю:
Nmap scan report for XYZ\n
blah blah blah\n
blah blah blah\n
blah blah blah\n
data: here\n\n
Как мне захватить все, начиная с (включая) Nmap scan
вплоть до строки, содержащей data
до конца этой линии? Текст после data
изменяется, поэтому мне нужно сканировать до data
и до конца этой строки.
Я пытался:
.scan(/Nmap scan.*?data.*?/m)[1]
, но это захватывает все от Nmap scan
до слова data
. Я думал, что .*?
после слова data
будет означать «захватить все» и после этой строки. Не повезло.
Также попытался (?ms)^Nmap.*?\ndata:[^\n]*
, но не повезло, как показано ниже:
2.5.1 :192 > puts evidence.scan(/(?ms)^Nmap.*?\ndata:[^\n]*/)
Traceback (most recent call last):
SyntaxError ((irb):192: undefined group option: /(?ms)^Nmap.*?\ndata:[^\n]*/)