У меня есть строка, содержащая некоторые подстроки, разделенные новой строкой.
Например:
$x="This is the first line.
This is the second line.
This is the third line.";
Я хочу получить третью строку из этой строки,
Мое регулярное выражение:
/\s*([^\n]+)/i
Но это возвращает всю строку,
Я также пробовал
/\n{3}\s*([^\n]+)/i
Он ничего не сравнивал.
Есть ли способ в regex решить мою проблему? Я пытался решить это сам за последние 30 минут, но все мои попытки потерпели неудачу.
preg_match_all("/\s*([^\n]+)/i",$x,$m);
print_r($m);
Спасибо!
Если я не понимаю сложность вашей ситуации, вы должны просто использовать explode()
следующим образом:
$split = explode("\n", $x);
print_r($split[2]);
$x
содержит начальные пробелы.
Просто используйте s
модификатор вместе с $
. В dotall mode $
совпадает с окончанием последней строки.
preg_match('~\s*([^\n]+)$~s',$x,$m);
/s
. Я сомневаюсь, что вам здесь нужно регулярное выражение.
\n
и получить последний предмет? Регулярное выражение необходимо, когда у вас есть сложные шаблоны. Здесь вам нужно получить какую-то конкретную строку.