我应该使用哪种模式与preg_match_all()来提取此字符串中的金额?

Ste*_*eve 0 php regex preg-match-all

想要在以下字符串中提取金额:

£5000 per Night - 1 bedroom - Serviced Apartment
Run Code Online (Sandbox Code Playgroud)

关于如何使用preg匹配所有的想法?

我正在使用这种模式:

preg_match_all("|£(\d)|U",$string,$matches);
Run Code Online (Sandbox Code Playgroud)

但它只取5而不是5000

如果用15,000英镑可以用逗号提取它怎么办?

thx的帮助,

斯特凡

Amb*_*ber 5

\d+而不是\d.否则,它只匹配一个数字.+意思是'一个或多个'.

preg_match_all("|£(\d+)|U",$string,$matches);
Run Code Online (Sandbox Code Playgroud)

(有关重复在正则表达式中如何工作的更多详细信息,请参阅此页.)


一个允许使用逗号的表达式,并确保它们不在奇怪的位置(例如,500):

preg_match_all("|£(\d+(?:,\d+)*)|U",$string,$matches);
Run Code Online (Sandbox Code Playgroud)