preg_match_all не работает - PullRequest
0 голосов
/ 10 января 2012

Что не так в следующем регулярном выражении?

$source =
"Je (1200) recycler(s) hebben een totale opslagcapaciteit van 24.000.000. 
In het bestemmingsveld [2:188:7] zweven 0 metaal en 5.000 kristal in de ruimte. 
Je hebt 0 metaal en 5.000 kristal opgehaald."


echo $source;
$regex  = 'Je \(([0-9.]*?)\) recycler(s) hebben een totale opslagcapaciteit van ([0-9.]*?). ';
$regex .= 'In het bestemmingsveld \[2:188:7\] zweven ([0-9.]*?) metaal en ([0-9.]*?) kristal in de ruimte. ';
$regex .= 'Je hebt ([0-9.]*?) metaal en ([0-9.]*?) kristal opgehaald.';

$matches = array();

preg_match_all('/' . $regex . '/i', $source, $matches, PREG_SET_ORDER);

print_r($matches);

Ответы [ 2 ]

1 голос
/ 10 января 2012

скобки в recycler(s) требуют обратной косой черты.попробуй: recycler\(s\)

0 голосов
/ 10 января 2012
Je \(([0-9.]*?)\) recycler\(s\) hebben een totale opslagcapaciteit van ([0-9.]*?)\s+
\s+In het bestemmingsveld \[2:188:7\] zweven ([0-9.]*?) metaal en ([0-9.]*?) kristal in de ruimte.\s+
\s+Je hebt ([0-9.]*?) metaal en ([0-9.]*?) kristal opgehaald.

Я цитирую паран в переработчике (ях), добавил некоторые \ s + до и после новых строк и добавил модификатор 's' к совпадению с регулярным выражением

...