首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Strings PHP之间进行选择

在Strings PHP之间进行选择
EN

Stack Overflow用户
提问于 2014-03-03 13:59:58
回答 2查看 64关注 0票数 1

我有这样的短信:

$tagPossible = '365 Wallpapers now available on Nokia Store for #NokiaX family @nokiadeveloper @nokia';

这个字符串中有两个单词:nokiadeveloper和@nokia。

我所做的是,我想将这两个字符串(可以是X)存储到我的数据库中。

$tag = strstr($tagPossible,'@'); echo $converTag = str_replace('@','',$tag);

这是我的输出:nokiadeveloper

因为有两个标签,我想将它们作为两行导入到我的数据库中。因此,在导入此字符串时,我需要具体说明。

我怎么能选择这个字符串?我只想选择nokiadeveloper和诺基亚作为数组。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-03 14:03:06

使用preg_match_all()和积极的展望来提取所有必需的字符串:

代码语言:javascript
复制
(?<=\s)@(\w+)

解释:

  • (?<=\s) -如果前面有空格字符
  • @ -匹配文字@字符
  • (\w+) -匹配(并捕获)任何单词字符[A-Za-z0-9_]

代码:

代码语言:javascript
复制
$ok = preg_match_all('/(?<=\s)@(\w+)/', $tagPossible, $matches);

if ($ok) {
    $arr = $matches[1];
}

print_r($arr);

输出:

代码语言:javascript
复制
Array
(
    [0] => nokiadeveloper
    [1] => nokia
)
票数 1
EN

Stack Overflow用户

发布于 2014-03-03 14:14:16

另外,这是另一个解决方案可能会有所帮助。就因为我讨厌Regex

代码语言:javascript
复制
$tag = strstr($tagPossible, '@');    
$tags = explode('@', $tag);

foreach($tags as $tag) {
    echo trim($tag). PHP_EOL;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22148703

复制
相关文章

相似问题

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