繁体   English   中英

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

[英]regex pattern to match words of a string

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

举个例子,它将更好:

array("hello word", "lovely child", "i am lost in paradise" ) 

我的测试字: "lo"

在运行了foreach和Regex之后,我只需要拥有: lovely child, i am lost in paradise

希望我清楚! 我有一个正则表达式的真正问题:/

你能帮忙吗,谢谢

您可以结合使用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);}
           );

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

替代

$array = array("hello word", "lovely child", "i am lost in paradise" );

$find='lo';

print_r(preg_grep('/\b'.$find.'/', $array));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM