Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2009, 09:36
Новичок на форуме
Отправить личное сообщение для Holod Посмотреть профиль Найти все сообщения от Holod
 
Регистрация: 27.05.2009
Сообщений: 3

помогите с регуляркой
Составляю выражение для текста вида
to [Login 1] to [Login 2] произвольный текст
Блоков "to [Login]" может быть любое кол-во, в том числе 0. Нужно вытащить логины и текст сообщения.
Написал выражение
^(to \[([\w\s]*)\]\s*)*(.*)$
Если его применить к указанному тексту, результат будет такой:
0: (to [Login 1] to [Login 2] произвольный текст)
1: (to [Login 2] )
2: (Login 2)
3: (произвольный текст)
Почему в результаты попадает только второй (нас самом деле последний) блок "to [Login]"? Если выражение заменить на
^(to \[([\w\s]*)\]\s*)(to \[([\w\s]*)\]\s*)(.*)$
то есть повторить первую скобку, результат будет тем, который и нужен, но только для двух блоков.
0: (to [Login 1] to [Login 2] произвольный текст)
1: (to [Login 1] )
2: (Login 1)
3: (to [Login 2] )
4: (Login 2)
5: (произвольный текст)
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2009, 12:02
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

PHP solution:

$subject = "to [Login 1] to [Login 2] to [Login 3] to [Login 4] произвольный текст";

# Логины
preg_match_all('/(to \[([^]]+)\])+/', $subject, $matches);

foreach($matches[2] as $key => $val) print "<br>$val";


# Произвольный текст
preg_match_all('/\]([^]]*$)/', $subject, $matches);

print "<br>".$matches[1][0];


Результат:
Login 1
Login 2
Login 3
Login 4
произвольный текст

Последний раз редактировалось Tim, 19.08.2009 в 12:03. Причина: Забыл результаты
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вырезать регуляркой greatilya Серверные языки и технологии 17 24.07.2009 18:00
помогите задать селектор! mkrylov jQuery 2 28.06.2009 20:34
Имя файла регуляркой greatilya Общие вопросы Javascript 2 05.03.2009 12:04
Помогите, страница работает толька в FF OlexandrI jQuery 1 29.12.2008 23:01
Помогите с регуляркой... alexKniaz AJAX и COMET 0 03.11.2008 01:16