PHP使用正则表达式获取货币单位


PHP Get currency unit using regex expression

我有一些字符串作为:

€/£/$400
£/$/£400
€/$400
£/$400
$400

如何在这些数字之前获得货币单位,使用regex-PHP:

例如:

String0= "€/£/$400 + 50 free spins" -> Get €/£/$   
String1= "€/£/$400" -> Get €/£/$
String2= "£/$/£400" -> Get £/$/£
String3= "€/$400" -> Get €/$
String4= "£/$400" -> Get £/$
String5= "$400" -> Get $
String5= "£400" -> Get £
Update: String6= "50 free spins" -> Get null;

我想用一个正则表达式函数来去除这个字符串就可以了。

我使用的是preg_match_all('/'D+/', $str, $matches);,它显示货币单位可以,但现在我想在上面添加case:String6。请帮我改进一下。

只需使用preg_replace:去掉所有数字

$repl = preg_replace('/'d+/', '', $input);

或者保留只允许的字符:

$repl = preg_replace('#[^€/£$]+#u', '', $input);

您可以使用正向前瞻:

<?php
$str = "€/£/$0400 + 50 free spins";
$matches = array();
if (preg_match('/(.*?)(?='d)/u', $str, $matches))
{
    print $matches[1];
}
//output:  €/£/$
$res = preg_replace('/(^[€'/£$]+).+/u', '$1', $input);