Итак, я начну с размещением кода:PHP Regex группировки не работает, как ожидалось
$output = preg_replace([
'/#(.*?)/i'
], [
'<h1>$1</h1>'
], "#Input");
И что в конечном итоге вывод:
<h1></h1>
Input
В HTML OPT, выход I» d хотел бы достичь <h1>Input</h1>
от ввода #Input
, вроде как Markdown
, но это для базовой системы редактирования.
Я просмотрел Regex Debugger
(here), а трассировка отладки/стека состояла в том, что первая группа была ничем, а индексной группой был #
.
Насколько мне известно, единственные вещи, которые были взяты и помещены в группы (мне сказали это), это (...)
, а от left -> right
группы помечены от $1 -> $x
.
Извините за чрезмерные вопросы REGEX.
FYI: модификатор 'i' здесь избыточен, а' .' с модификатором '' 'соответствует * любым * символам, которые могут быть проблемой в случае, если текст представляет собой уже отмеченную строку. –
Не так, как я бы построил это регулярное выражение, просто сосредоточившись на непосредственной проблеме, и я предполагаю, что это не полный код вопроса, но ваша точка взята. Я буду работать над улучшением моего ответа для будущих посетителей. Благодарю. – yivi
Да, извиняюсь, поскольку это всего лишь часть моей кодовой базы, которая требовала оператора 'i' столько же, сколько' s', я удалю 's' из моего для будущих посетителей, чтобы не было плохой практики. @ WiktorStribiżew и ответ OP – Jek