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

时间:2013-11-23 07:27:44

标签: php regex

我有一些字符串:

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

如何使用正则表达式获取这些数字前的货币单位 - 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。请帮我改进。

3 个答案:

答案 0 :(得分:1)

使用preg_replace删除所有数字:

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

或者只保留允许的字符:

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

答案 1 :(得分:0)

你可以使用积极的前瞻:

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

//output:  €/£/$

答案 2 :(得分:0)

$res = preg_replace('/(^[€\/£$]+).+/u', '$1', $input);