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'";

我需要匹配“挑战”一词之后的字符串。包含下划线和“-”。

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 回答