1

段落内に次の文字列があります。

今日の格言は「昨​​日から学び、今日のために生き、明日に希望を持ちなさい。重要なことは、質問をやめないことです。

この文を抽出する必要があります。

私は正規表現に慣れていないので、ここで少し助けてください。私は試した:

preg_match("Today's quote is: '[a-zA-Z0-9]'",$response, $matches);

もちろん、私が想像したように、それは機能していません。どんな助けでも大歓迎です。前もって感謝します。

編集:また、英数字表現に「_」と「-」を含める必要があります。

例:

$string = "site : '6LcZwNcSAAAAAEcQkyCCSteouAQS9jO7wDrgzvbL', rtl : false, challenge : '03AHJ_Vuv_3y7kY-GQaCyzgrz9ZTv_cFQN_F0jEqOGNq0-3QANrsxJ18oPj4bbhRqPoISIZbqBBdeEXVfpnnVjlTsjoxQugI4j0zB1yRQU1m4wXzFGVRpuRyXJmnJU3d7Ix0nhyO_OBeFCR7v9gXtz_BNN04tSzXxVyvKCExO9I2vcqcIhWJQE8K8'";

「Challenge」という単語の後の文字列を一致させる必要があります。アンダースコアと「-」を含む。

4

1 に答える 1

2

これは仕事をするはずです:

$string = "Today's quote is: 'Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning.'";
preg_match('/.*?:.*?\'(.*?)\'/', $string, $m);
echo $m[1]; // Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning.

EDIT2:OPが別の例を示した後。その編集の解決策は次のとおりです。

$string = "site : '6LcZwNcSAAAAAEcQkyCCSteouAQS9jO7wDrgzvbL', rtl : false, challenge : '03AHJ_Vuv_3y7kY-GQaCyzgrz9ZTv_cFQN_F0jEqOGNq0-3QANrsxJ18oPj4bbhRqPoISIZbqBBdeEXVfpnnVjlTsjoxQugI4j0zB1yRQU1m4wXzFGVRpuRyXJmnJU3d7Ix0nhyO_OBeFCR7v9gXtz_BNN04tSzXxVyvKCExO9I2vcqcIhWJQE8K8'";
preg_match_all('/.*?:.*?\'(.*?)\'/', $string, $m);
var_dump($m);
于 2013-04-04T23:21:26.157 に答える