Рассмотрите следующее. Я разделив строку на {} теги, которые фигурные скобки с anynumber символов (и/или цифр) между ними:Разделите строку на теги, удалите пустой результат
$string = "Lorem {FOO} ipsum {BAR} dolor {FOO:bar} samet";
$temp = preg_split('/(\{.*?\})/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
Результирующий массив ($ TEMP) является:
Array (
[0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR}
[4] => dolor [5] => {FOO:bar} [6] => samet
)
Однако, если $ строка заканчивается с меткой, например:
$string = "Lorem {FOO} ipsum {BAR} dolor {FOO:bar}";
Затем результирующий массив ($ Temp) содержит пустой элемент (# 6 в данном случае):
Array (
[0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR}
[4] => dolor [5] => {FOO:bar} [6] =>
)
Очевидно, что это может быть впоследствии удалено путем проверки пустых значений, но, на мой взгляд, это не самый элегантный способ. Есть ли альтернатива (по регулярному выражению, возможно?), Чтобы не иметь пустых элементов в результирующем массиве для начала?
Выход этого выражения: Array ([0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR} [4] => dolor {FOO: bar}) - с обоими «долорами» и {FOO: bar} в финале элемент массива. Я ищу: Array ([0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR} [4] => dolor [5] => { FOO: bar}) с {FOO: bar} самостоятельно в конечном элементе. Это то, что вы пытались сделать, или я не понял ваш комментарий правильно? – Pr0no
Я преждевременно ударил кнопку сохранения, извините за это. Посмотрите полный ответ сейчас ... – rodneyrehm