我想知道从字符串中获取特定关键字之前和之后的最佳方法是什么?
示例:
$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>';
}
有什么想法吗?
答案 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次或更多次。因此,您可以在关键字前后捕获该字词。