我的文字如下:
$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 nokia
因为有两个标签,我想将它们作为两行导入我的数据库。 所以我需要在导入这个字符串时具体。
我怎么能选择这个字符串? 我想只选择nokiadeveloper和nokia作为数组。
谢谢!
答案 0 :(得分:1)
使用带有正向前瞻的preg_match_all()
来提取所有必需的字符串:
(?<=\s)@(\w+)
说明:
(?<=\s)
- 如果前面有空格字符@
- 匹配文字@
字符(\w+)
- 匹配(并捕获)任何字词[A-Za-z0-9_]
代码:
$ok = preg_match_all('/(?<=\s)@(\w+)/', $tagPossible, $matches);
if ($ok) {
$arr = $matches[1];
}
print_r($arr);
输出:
Array
(
[0] => nokiadeveloper
[1] => nokia
)
答案 1 :(得分:0)
此外,here's another solution可能有帮助。仅仅因为我讨厌正则表达式:
$tag = strstr($tagPossible, '@');
$tags = explode('@', $tag);
foreach($tags as $tag) {
echo trim($tag). PHP_EOL;
}