我有一些字符串:
€/£/$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。请帮我改进。
答案 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);