php preg match с встроенными совпадениями - PullRequest
0 голосов
/ 20 октября 2011

Как я могу сопоставить только точный встроенный код и сопоставить два, если дважды, а не как одно совпадение.

http://regexr.com? 2uvul

Я хочуполучить результат с помощью:

Array ([0] => asd [1] => asd)

not

Array ([0] => asdasd)

1 Ответ

2 голосов
/ 20 октября 2011

http://regexr.com? 2uvuu - используйте выражение:

<!--\s+IF\s+([^\s]*)\s-->([^<]*)<!--\sENDIF\s-->

EDIT:

Учитывая, что то, что вы хотите сопоставить внутри «тега» оператора if, может иметь пробел, более медленное выражение, которое должно обрабатывать что-либо внутри «оператора if», должно выглядеть следующим образом (в RegExr ) :

/<!--\s+IF\s+(.*?)\s-->([^<]*)<!--\sENDIF\s-->/gixsm

Если затем вы хотите иметь возможность захватывать другие теги (или символ <) внутри результата (если выражение «true», вы захотите использовать (опять чуть медленнее) выражение (на * 1017) * RegExr ):

/<!--\s+IF\s+(.*?)\s-->(.*?)<!--\sENDIF\s-->/gixsm

END EDIT

...