gpt4 book ai didi

php - 从 php 中的 mediawiki 标记中获取类别值

转载 作者:搜寻专家 更新时间:2023-10-31 21:26:55 24 4
gpt4 key购买 nike

我正致力于从循环中的 wiki 标记文本中检索类别值,无法在 php 中使用正则表达式匹配从标记中获取类别值

标记文本包含类别值作为

$input_wiki_markup = "
[[Category:Google]]
[[Category:Tricks]]
[[Category:Google Search]]
[[Category:Filters]]
[[Category:Search]]
[[Category:Tips]]";

到目前为止,这是我尝试过的

$matches = array();
if(preg_match("/\[\[(Category):(.+)*\]\]/i", $input_wiki_markup, $matches)){
print_r($matches);
}

这是输出

 Array
(
[0] => [[Category:Google]][[Category:Tricks]][[Category:Google Search]][[Category:Filters]][[Category:Search]][[Category:Tips]]
[1] => Category
[2] => Google]][[Category:Tricks]][[Category:Google Search]][[Category:Filters]][[Category:Search]][[Category:Tips
)

但我试图在冒号之后获取仅包含类别值的输出数组,即

 Array
(
[0] => Google
[1] => Tricks
[2] => Google Searcg
)

等等。

我应该对我的正则表达式进行哪些更改以仅获取 $mathces 数组中填充的类别值或者我应该使用其他 php 函数而不是 preg_match ?

请注意,$input_wiki_markup 还包含 [[Categpry:xyz]] 标签周围的其他文本

最佳答案

你所需要的只是一个全部

$input_wiki_markup="
[[Category:Google]]
[[Category:Tricks]]
[[Category:Google Search]]
[[Category:Filters]]
[[Category:Search]]
[[Category:Tips]]
";

$matches = array();
if(preg_match_all("/\[\[(Category):(.+)*\]\]/i", $input_wiki_markup, $matches)){
print_r($matches);
}

输出:

Array
(
[0] => Array
(
[0] => [[Category:Google]]
[1] => [[Category:Tricks]]
[2] => [[Category:Google Search]]
[3] => [[Category:Filters]]
[4] => [[Category:Search]]
[5] => [[Category:Tips]]
)

[1] => Array
(
[0] => Category
[1] => Category
[2] => Category
[3] => Category
[4] => Category
[5] => Category
)

[2] => Array
(
[0] => Google
[1] => Tricks
[2] => Google Search
[3] => Filters
[4] => Search
[5] => Tips
)

)

关于php - 从 php 中的 mediawiki 标记中获取类别值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34733270/

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