这是我的代码
<?php
$content = "Hello Guys how are you @[6] i hope you are doing well @[9]";
$tags = ""; // Value under @[]
echo $tags;
?>
我想将@ []下的值存储到以逗号分隔的$ tags
答案 0 :(得分:0)
您可以使用preg_match_all
[1]来获取所有@[]
部分之间的内容。然后implode
[2]的结果得到一个逗号分隔的字符串。
<?php
define('FIRST_MATCH_GROUP', 1);
$content = "Hello Guys how are you @[6] i hope you are doing well @[9]";
$tags = [];
preg_match_all("/@\[(.)\]/", $content, $tags); // Value under @[]
$tags = implode(',', $tags[FIRST_MATCH_GROUP]);
var_dump($tags);
工作示例:
5.6.38-7.3.0rc3的输出
string(3)“ 6,9”
正则表达式说明:
https://regex101.com/r/cxH6L3/1/
/ @ [(。)] /
@从字面上匹配字符@(区分大小写)
\ [与字符[从字面上(区分大小写)匹配
第一个捕获组(。)
。匹配任何字符(行终止符除外)
\]与字符]完全匹配(区分大小写)
编辑:对于@[]
之间的多个数字,您必须将正则表达式调整为@\[(.+)\]
并添加一个Ungreedy标志,请参见https://regex101.com/r/cxH6L3/2和{{3 }}