Я захватываю блок текста, внутри этого блока будет строка, содержащая фразу, которая заканчивается «WITH PASSWORD kEqHqPUd», где kEqHqPUd является динамически сгенерированным паролем. Может ли кто-нибудь предоставить простое регулярное выражение для захвата только пароля в этом. FWIW Я использую PHP.
благодаря
preg_match('/WITH PASSWORD (.*)$/im', $block, $matches); //result in $matches[1]
Ключ – это модификатор «m» .
Не знаете, как вы определяете « фраза, которая заканчивается » … Но если вы имеете в виду, что « предложение заканчивается паролем, но за ним может следовать другое предложение », тогда решение может быть:
$text = <<<TEXT This is some text and there is a sentence that ends with WITH PASSWORD kEqHqPUd. Is that matched ? TEXT; $matches = array(); if (preg_match('/WITH PASSWORD ([\w\d]+)/', $text, $matches)) { var_dump($matches[1]); }
Это будет работать, однако, если пароль содержит только буквы и / или цифры, но будет работать, если после слова « конец фразы » будет что-то.
Если вы имели в виду, что пароль является последней вещью во всей строке, вы можете использовать что-то вроде этого:
$text = <<<TEXT This is some text and there is a sentence that ends with WITH PASSWORD kEqHqPUd TEXT; $matches = array(); if (preg_match('/WITH PASSWORD (.+)$/m', $text, $matches)) { var_dump($matches[1]); }
Обратите внимание, что знак $
означает « конец строки ».
Предполагая, что PHP принимает стандартные шаблоны регулярных выражений, следующее должно работать «WITH PASSWORD (. +) + $», Где пароль будет помещен в первую группу захвата.