の前と後に、私はこのようになり、データの文字列があります。PHPの正規表現マッハ特定の単語
$string = '
foo=bar
badge_name_foo=foo
bar_badge_name=bar
bar=baz
';
を私はすべての*_badge_name
とbadge_name_*
文字列にマッチします。使用
正規表現イムはこれです: preg_match_all('~(?:(\w+)_)?badge_name(?:_(\w+))?~', $string, $matches, PREG_SET_ORDER);
結果は次のとおりです。
Array
(
[0] => Array
(
[0] => badge_name_foo
[1] =>
[2] => foo
)
[1] => Array
(
[0] => bar_badge_name
[1] => bar
)
)
*_badge_name
が正常に動作しているが、badge_name_*
に毎回空の値がありますか?今、どのように私はpreg_match_all
期待される結果となる必要があることを削除することができます:それはあなたがBRANCH RESET featureを使用する必要があるようだ
Array
(
[0] => Array
(
[0] => badge_name_foo
[1] => foo
)
[1] => Array
(
[0] => bar_badge_name
[1] => bar
)
)
が魔法のように動作し、ありがとうございます! – Tafelglotzer