以下正则表达式有什么问题?
$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);
答案 0 :(得分:1)
recycler(s)
中的括号需要反斜杠。尝试:recycler\(s\)
答案 1 :(得分:0)
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.
我引用了回收器中的parans,在新行之前和之后添加了一些\ s +并在正则表达式匹配中添加了's'修饰符