Как заполнить все preg_match () массивом

Вероятно, вы захотите этого:

Didn't work.

Как и другие, попробуйте vertical-align на изображении:

Didn't work.

CSS не раздражает. Вы просто не читаете документацию . ; Р

0
задан user304650 4 March 2019 в 11:10
поделиться

1 ответ

Возможное решение - возможно, не самое лучшее - это пройтись по тому, что вы сопоставили с preg_match(), и заменить одно на другое.

$str = '1 + 1 = 12, wrong';
$pattern = '/(\d+) \+ (\d+) = (\d+), (\w+)/';
$replacer = [1, 2, 3, 'correct'];
$result = $str;

if (preg_match($pattern, $result, $matches)) {
    // If there is enough matches, we can continue
    if (sizeof($matches) === (sizeof($replacer) + 1)) {
        // We begin at 1 because $matches[0] is the whole string.
        for ($i = 1; $i < sizeof($matches); $i++) {
            // We use preg_replace because str_replace will replace all occurences of the match.
            $result = preg_replace('/' . $matches[$i] . '/', $replacer[$i - 1], $result, 1);
        }
    }
}

Обратите внимание, что я исправил ваш шаблон регулярных выражений.

0
ответ дан Kévin Bibollet 4 March 2019 в 11:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: