【问题标题】:how to extract all #Tags and User tag from string in laravel?如何从laravel中的字符串中提取所有#Tags和User标签?
【发布时间】:2019-12-13 02:40:39
【问题描述】:

我有一个输入字段,其中用户名标签,如@abd123,@abc1,以及一些主题标签,如#CurrentNews, #NewLife 在同一输入字段中。

我的工作是捕获所有以 @ 和 # 开头的标记名称,并将其放在单独的数组中以查看它们的 DataBase 表。 所以这对我来说非常复杂。所以请告诉我最简单的解决方案。

这是在我为此使用 explode() 方法之前。但这不是一个好主意。

我这样从请求中得到的价值

$allTags =  @abc1,@abvc321, #NewAge , #CurrentNews

应该是在处理之后。

$userTag = ["@abc1","@abvc321"];
$topicTag = ["#NewAge ","#CurrentNews"];

【问题讨论】:

  • 你为什么说“但这不是一个好主意”explode() 应该可以很好地将字符串分成一个数组,然后检查数组中每个值的第一个字符并将其移动到$userTag$topicTag
  • 亲爱的 Lewis explode() 只是破坏和转换数组。但是在这里用户在两个标签之间放置了一些其他符号,例如空格。所以很难管理。所以我一直在寻找常规的经验。对于这个解决方案。
  • 有道理。如果格式是可预测的,那么explode() 可以工作,但是是的,允许动态内容需要正则表达式。
  • 是的。我无法从前端验证这一点......将来,我可以做到......

标签: php laravel-5 tags


【解决方案1】:

调整来自Extracting Twitter hashtag from string in PHP 的答案以捕获用户标签,这在同一个正则表达式中使用两者来生成 2 个列表。过滤器(array_filter())用于整理数组(当一个包含用户标签时,另一个将为空)...

$string = '@abc1 xxx,@abvc321, #NewAge , #CurrentNews';
preg_match_all("/(#\\w+)|(@\\w+)/", $string, $matches);
$topicTag = array_filter($matches[1]);
$userTag = array_filter($matches[2]);

print_r($userTag);
print_r($topicTag);

给...

Array
(
    [0] => @abc1
    [1] => @abvc321
)
Array
(
    [2] => #NewAge
    [3] => #CurrentNews
)

【讨论】:

  • 非常感谢。你节省了很多时间。我还需要一个问题。那么你能把你的邮件发到 p1608088@gmail.com 吗?因为我在这里问了这个问题,但我的分数下降了。所以我不想失去我的评分。即形成基于多重身份验证的程序解决方案...
  • 如果这回答了您的问题,那么请考虑将其标记为已回答 - meta.stackexchange.com/questions/5234/…
【解决方案2】:

尊敬的 Nigel Ren 我对您的解决方案几乎没有改动。因为 $userTag 是对象格式。所以它的数据类型会改变。这不会影响 foreach。但我尝试将两者都制成数组格式。

    $string = $req->user_tags;
    preg_match_all("/(#\\w+)|(@\\w+)/", $string, $matches);
    $topicTag = array_values(array_filter($matches[1]));
    $userTag = array_values(array_filter($matches[2]));

这是我的结果

 [
   [
     "@pankaj",
     "@pawan"
   ],
 [
   "#tag",
   "#tag2",
   "#tage3"
 ]
]

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 1970-01-01
    • 2017-08-09
    • 2011-01-05
    • 2021-07-30
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多