我得到了这样的字符串:
Test 120,00 Euro yaddayadda
200 € with 18 months of blablabla
3.000,65 € something . And here s something more with 0815. And more.
1 Euro
Last item for 5.234.789,00 Euro.
我希望摆脱除价格之外的一切。 所以这些例子应该是
120,00
200
3.000,65
1
5.234.789,00
我已经
了preg_replace("/[^0-9,.]/", "", $string);
但这还不够。它变成
3.000,65 € something . And here s something more with 0815. And more.
到
3.000,65.0815..
关闭......但仍然不够。
THX!
答案 0 :(得分:2)
您可以使用:
$result = preg_replace('/^\D*(\b\d+([,.]\d+)*\b).*$/m', '$1', $str);
这个正则表达式:
\D* # matches all non-digits from start
\b # word boundary
\d+([,.]\d+)* # matches your floating point number in each line
(...) # groups these numbers
.*$ # match rest of the line
替换为$1
,这是被捕获的数字。