我有一个字符串 Array() ,我不得不将它与一个单词的一部分进行比较,它必须是每个字符串中一个单词的开头!!!
举个例子会好很多:
array("hello word", "lovely child", "i am lost in paradise" )
我的测试词:"lo"
在运行 foreach 和 Regex 之后,我只需要:lovely child, i am lost in paradise
希望我说清楚了!我对 Regex 有一个真正的问题:/
你能帮忙吗,谢谢
最佳答案
您可以使用 array_filter
结合正则表达式来实现这一点:
$array = array("hello word", "lovely child", "i am lost in paradise" );
$term = "lo";
// necessary in case $term contains characters with special meaning in a regex
$term = preg_quote($term, '/');
$results = array_filter(
$array,
function($el) use($term) {return preg_match('/\b'.$term.'/', $el);}
);
正则表达式使用 word boundary anchor以确保搜索词出现在单词的开头。
关于php - 用于匹配字符串单词的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17192022/