正则表达式模式匹配字符串的单词

t.c*_*t.c 2 php regex string

我有一个字符串的Array(),我已经将它与一个单词的一部分进行比较,它必须是每个字符串中一个单词的开头!

举个例子,它会好得多:

array("hello word", "lovely child", "i am lost in paradise" ) 
Run Code Online (Sandbox Code Playgroud)

我的测试词: "lo"

运行foreach和正则表达式之后,我只需要: lovely child, i am lost in paradise

希望我清楚!我对Regex有一个真正的问题:/

你能帮忙吗,谢谢

Jon*_*Jon 5

您可以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);}
           );
Run Code Online (Sandbox Code Playgroud)

正则表达式使用单词边界锚点来确保搜索词出现在单词的开头.