找到第一个字符实例,然后停在太空?

时间:2012-01-24 08:50:22

标签: php regex

我想我需要使用某种正则表达式但是还在努力......

我有一个字符串,例如

the cat sat on the mat and $10 was all it cost

我想返回

$10

货币代码是否有通用名称,因此如果是

,我可以返还10英镑
the cat sat on the mat and £10 was all it cost

或者为表达式添加更多字符的方法

3 个答案:

答案 0 :(得分:0)

$string = 'the cat sat on the mat and $10 was all it cost';
$found = preg_match_all('/[$£]\d*/',$string,$results);
if ($found)
    var_dump($results);

答案 1 :(得分:0)

您可以使用

/(\$.*?) /

(注意在右括号后面有空格)

如果要添加更多符号,请使用括号:

$str = 'the cat sat on the mat and £10 was all it cost';
$matches = array();
preg_match( '/([\$£].*?) /', $str, $matches );

如果货币符号位于值之前,并且值后面有空格,则此功能将起作用。您可能想要检查更一般的情况,例如句子末尾的值没有尾随空格等。

答案 2 :(得分:0)

这可能适合你

$string = "the cat sat on the mat and $10 was all it cost";
preg_match("/ ([\$£\]{1})([0-9]+)/", $string, $matches);

echo "<pre>";
print_r($matches);