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.*

Он выберет первую строку, независимо от того, что.