gpt4 book ai didi

php - 使用正则表达式从主题标签中获取名称

转载 作者:可可西里 更新时间:2023-11-01 01:05:09 25 4
gpt4 key购买 nike

我有这个字符串/内容:

@Salome@Jessi H@O'Ren@Lean 的演出用“@Ziggy”鼠标码。

好吧,我正在尝试让所有名称都集中在上面。我已经使用 @ 符号创建了一个散列,以便在我的网站中使用。如果您注意到,名称之间有空格,如 @Jessi H 和前后字符,如 @Ziggy。因此,如果您建议我以另一种方式管理哈希以使其正常工作,我不会这样做。我在想,对于有空格的用户,可以用 @"Jessi H" 这样的引号来写散列。你怎么看?其他例子:

@Lean's => @"Lean"'s  
@Jessi H => @"Jessi H"
"@Jessi H" => (sorry, I don't know how to parse it)
@O'Ren => @"O'Ren"

我做了什么?我开始在 php 中使用正则表达式,但是一些 SO 问题对我入门很有用,所以,这些是我首先尝试使用 preg_match_all 函数:

/@(.*?)[,\"]/ 的结果:

Array ( [0] => Salome [1] => Jessi [2] => Charlie [3] => Lean's [4] => Ziggy" ) )

/@"(.*?)"/ 的结果,如 @"name":

Empty array

伙计们,我不希望你为我做这一切。我认为伪代码或类似的东西将有助于引导我走向正确的方向。

最佳答案

尝试以下正则表达式:'/@(?:"([^"]+)|([^\b]+?))\b/'

这将返回两个匹配组,第一个包含任何引用的名称(例如 @"Jessi H"@"O'Ren"),第二个包含任何未加引号的名称(例如 @Salome@Leon)

$matches = array();
preg_match_all('/@(?:"([^"]+)|([^\b]+?))\b/', '@Salome, @"Jessi H" and @"O\'Ren" were playing at the @Lean\'s yard with "@Ziggy" the mouse.', $matches);
print_r($matches);

输出:

Array
(
[0] => Array
(
[0] => @Salome
[1] => @"Jessi H
[2] => @"O'Ren
[3] => @Lean
[4] => @Ziggy
)

[1] => Array
(
[0] =>
[1] => Jessi H
[2] => O'Ren
[3] =>
[4] =>
)

[2] => Array
(
[0] => Salome
[1] =>
[2] =>
[3] => Lean
[4] => Ziggy
)

)

关于php - 使用正则表达式从主题标签中获取名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com