Я использую preg-функции PHP 5, если это имеет значение.
Рассмотрим регулярный язык, которому соответствует следующее регулярное выражение.
([^{}] | {[0-9a-zA-Z_]+})*
Язык состоит из строк любого количества символов со специальными встроенными тегами, помеченными левыми и правыми фигурными скобками, которые содержат строку из одного или нескольких буквенно-цифровых символов или символов подчеркивания. Например, следующая допустимая строка на языке:
asdfasdf 1243 # $ * # {A_123} asdf? {432U}
Однако, проверяя строку с помощью этого регулярного выражения, я хотел бы получить список этих тегов, разделенных фигурными скобками, и их позиций в строке. Учитывая предыдущую строку примера, я хотел бы иметь массив, который говорит мне:
A_123: 20; 432U: 32
Возможно ли это с помощью регулярных выражений? Или мне просто написать функцию «вручную» без регулярного выражения, которая проходит через каждый символ строки и анализирует данные, которые мне нужны?
Простите, если это элементарный вопрос; Я только учусь!