如何在字符串中的特定关键字之前和之后提取单词?

时间:2016-01-08 18:09:32

标签: php regex string

我想知道从字符串中获取特定关键字之前和之后的最佳方法是什么?

示例:

$e = "Kuru Kavrulmuş soya Fasulye: 100 gram, ortalamadır";
$_GET['word'] = 'soya';

然后我想回复KavrulmuşFasulye

我的动态代码段(用于获取字符串)

if ( stripos($e, $_GET['word']) !== false) {
    echo '<div class="yellow">'. highlight($e,$_GET['word']) . '</div>';
}

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用preg_match()的简单正则表达式匹配关键字前后的字词,例如

$str = "Kuru Kavrulmuş soya Fasulye: 100 gram, ortalamadır"; 
$_GET['word'] = 'soya';

preg_match("/(\w+) " . $_GET['word'] . " (\w+)/mu", $str, $matches);

print_r($matches);

输出:

Array
(
    [0] => Kavrulmuş soya Fasulye
    [1] => Kavrulmuş
    [2] => Fasulye
)

正则表达式解释的是使用\w字词([a-zA-Z0-9_])与量词+匹配1次或更多次。因此,您可以在关键字前后捕获该字词。