Возможный дубликат:
Лучший способ разбора bbcode
Мне нужно получить имя пользователя из кавычек для моего форума (PHP).
Содержимое, которое я ищу, будет таким:
[quote author=username link=topic=1234.msg1234567#1234567 date=1234567890] lorem ipsum dolor [/quote] lorem ipsum dolor sit amet
Все, что мне нужно, это «имя пользователя».
Большая проблема заключается в том, что сообщение может иметь несколько кавычек и, следовательно, несколько имен пользователей, поэтому мне нужно получить каждое имя в массив, а мои навыки регулярного выражения плохие.
Используйте preg_match_all () – http://php.net/manual/en/function.preg-match-all.php, и вы получите результат в матчах
preg_match_all ('/ author = (\ w +) / i', $ string, $ usernames); Edit: \ w – любой символ «слова». Символом «слово» является любая буква или цифра или символ подчеркивания, то есть любой символ, который может быть частью слова «Perl». Вы можете изменить это с помощью [az], если имя пользователя содержит только буквы.
Попробуйте это как preg_match_all ('/ author = (. +) \ S + link / i', $ string, $ usernames);
\ s – любой символ пробела
Кроме того, если вы хотите попрактиковаться в RegEx – поиграйте с ними.
Попробуйте RegExhibit (Mac) http://homepage.mac.com/roger_jolly/software/ или Regex Coach (Win) http://www.weitz.de/regex-coach/
Оба являются бесплатными и действительно полезными.
Я не могу помочь вам с php в деталях, но Regex должен выглядеть так: «quote author = ([A-Za-z] *)»
Затем вы получаете доступ к коллекции групп, чтобы получить имя. "([A-Za-z] *)" определяет группу, к которой вы хотите получить доступ.