preg_match()文本提取

时间:2013-04-04 23:06:19

标签: regex preg-match text-extraction

我在段落中有这个字符串:

今天的报价是:'从昨天开始学习,为今天而活,希望明天。重要的是不要停止提问。'

我需要提取这句话“从昨天开始学习,为今天而活,为明天做好准备。重要的是不要停止提问。”

我不熟悉正则表达式,所以我想在这里提一点帮助。 我试过了:

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

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

1 个答案:

答案 0 :(得分: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);