2011-08-16 5 views
2

В файле я вытягивать данные из состоит из следующей информацииMatching данные из файла с регулярным выражением

<"DATA" 10.21       
^"DATA" 81.39       
_"DATA" 38.71       
"DATA" 84.19       

Использование preg_match, как я могу вытащить значения из каждого?

Я пробовал $r = '/<"DATA" (.+?)/';, но он не дал мне номера.

Кто-нибудь знает правильное регулярное выражение, чтобы вытащить эти цифры?

Заранее благодарен!

ответ

0
preg_match_all('/^\s*.?"DATA" (\d+)\.(\d+)\s*$/m', $str, $matches); 

CodePad.

+0

Привет Алекс спасибо за ответ! Код извлекает каждую строку, кроме последней, я допустил ошибку в сообщении. Не должно быть места перед последним. Любая идея о том, как это исправить? Я обновил свой пост, чтобы показать вам, что я имею в виду – joe

+0

@joe Просто поместите '?' После первого '.'. Я обновлю свой пост, чтобы это отразить. – alex

1

Вы должны использовать preg_match_all функцию:

preg_match_all('/^[<^_ ]"DATA" (\d+\.\d+)$/m', $string, $matches); 
// look in $matches 
Смежные вопросы