首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Preg_grep() Regex模式未按预期工作

Preg_grep() Regex模式未按预期工作
EN

Stack Overflow用户
提问于 2019-03-07 19:45:04
回答 1查看 128关注 0票数 0

我有下面的代码,我试图达到这样的效果

-Remove字符串末尾的"-“和数字。

-Then检查该值是否匹配。

这是我的PHP代码

代码语言:javascript
复制
$usernames= array("microsoft-2","google-1","google");
$value='google';

$input = preg_quote($value, '~');
$result = preg_grep('~' . $value . '~', $usernames);

echo '<pre>';
print_r($result);
//Array
(
    [1] => google-1
    [2] => google
)

上面的结果很好,但问题是如果我将值设置为"goog",则返回相同的结果,而我希望它返回一个空的erray。

用户名来自数据库,可以是一个大的数字。

简而言之,它应该在末尾返回一个移除破折号和数字,然后它应该检查这些值是否相同。如果是的话,那就把结果推进去否则就不行了。

任何帮助都将不胜感激!非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 19:56:58

添加单词中断\b

代码语言:javascript
复制
$usernames= array("microsoft-2","google-1","google");
$value='goog';

$input = preg_quote($value, '~');
$result = preg_grep('~' . $value . '\b~', $usernames);

echo '<pre>';
print_r($result);

输出

代码语言:javascript
复制
array()

沙盒

您甚至可以在每个侧$result = preg_grep('~\b' . $value . '\b~', $usernames);中添加一个--在本例中,goog --您只需要正确的一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55051708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档