Regex соответствует только первой строке?
Можно ли совместить регулярное выражение только с первой строкой текста? Поэтому, если у меня есть текст:
Это первая строка.
Это вторая строка.
...
Он будет соответствовать "Это первая строка". Какая бы ни была первая строка.
Ответы
Ответ 1
который больше похож на задание для буфера дескриптора файла.
Вы должны иметь возможность сопоставить первую строку с:
/^(.*)$/m
(как всегда, это синтаксис PCRE)
модификатор /m
делает ^
и $
совпадающими встроенные строки новой строки. Поскольку нет модификатора /g
, он просто обрабатывает первое вхождение, которое является первой строкой, а затем останавливается.
Если вы используете оболочку, используйте:
head -n1 file
или как фильтр:
commandmakingoutput | head -n1
Просьба уточнить ваш вопрос, если это не ват, который вы ищете.
Ответ 2
Да, вы можете.
Пример в javascript:
"This is the first line.\n This is the second line.".match(/^.*$/m)[0];
Возвращает
"This is the first line."
ИЗМЕНИТЬ
Объяснить регулярное выражение:
match(/^.*$/m)[0]
-
^
: начало строки
-
.*
: any char (.), 0 или более раз (*)
-
$
: конец строки.
-
m
: многострочный режим (. действует как a\n тоже)
-
[0]
: получить первую позицию массива результатов
Ответ 3
Если вам нужна самая первая строка, независимо от того, что вы здесь:
\A.*
Он выберет первую строку, независимо от того, что.