我再次遇到巨魔的问题。 有类似的情况:
<?php
[...]
$string="IchigoKurosaki FirstRandomTroll NatsuDragneel SecondRandomTroll NarutoUzumaki TrollMaster";
//[do some magic here]
//$outputArray = {
[1] => "FirstRandomTroll SecondRandomTroll",
[2] => "TrollMaster"
}
?>
我想用preg_match来捕捉群体巨魔。我有3组:
(firstRandomTroll), (secondRandomTroll), and (TrollMaster)
保存为$output
[1] => "first...", [2]=> "second...", and [3]="TrollMaster".
这是否可以仅使用一个正则表达式将[1]和[2]连接到一个值而已?
答案 0 :(得分:0)
我写了一个正则表达式来捕获字符串中的每个巨魔:
$string="IchigoKurosaki FirstRandomTroll NatsuDragneel SecondRandomTroll NarutoUzumaki TrollMaster";
preg_match_all("([a-zA-Z]*Troll[a-zA-Z]*)", $string, $array);
print_r($array);
输出:
Array
(
[0] => Array
(
[0] => FirstRandomTroll
[1] => SecondRandomTroll
[2] => TrollMaster
)
)
巨魔现在被孤立了(那是更好的,对吧?)
现在你可以对数组的元素执行操作以重新组合它们(听起来像个坏主意,这是我们正在谈论的巨魔......)。请注意这个数组的结构。
现在,如果你真的,真的想一次抓住两个巨魔,我认为一个正则表达式是不可能的。你可以重写它有两个捕获组,但是不会立即在一个字符串中输出两个巨魔......