正则表达式仅限数字

时间:2012-11-08 11:44:16

标签: regex

我正在试图找出一个正则表达式来从字符串中提取数字。目前我有字符串:

USD0,13

我只想搜索0,13

其他字符串将包含数字,例如USD1,14

任何帮助都会很棒。 干杯

2 个答案:

答案 0 :(得分:1)

对你来说最简单的就是:

'/[0-9,]+/'

在PHP中

$str = 'USD0,13';
$matches = array();
preg_match('/[0-9,]+/', $str, $matches);
echo $matches[0];

答案 1 :(得分:1)

/USD([0-9,\.]+)/的正则表达式应该做你想要的。除非你有千个分隔符(考虑到你看起来像是在使用欧盟标准),否则不一定需要这个点。

如果您想要多种货币,可以执行以下操作:/(EUR|GBP|USD)([0-9\,\.]+)/

由于你似乎对Regex很陌生,我会解释:

/是正则表达式的修饰符(这可以是任何东西,但我们将使用斜杠,它是正则表达式中最常见的字符)。如果您希望它具有敏感性,例如您可以执行/regex/i,而i则意味着对此敏感。

USD只是U后跟S后跟D的字符列表。

()表示我们希望正则表达式将此匹配输出给我们。

[0-9,\.]表示从09的数字,逗号和点(注意点必须转义,因为正则表达式中的.表示“任何字符”。 )

我们的匹配后跟+,表示“匹配此匹配的任何内容,重复1次或更多次”。

我们已使用USD切换(EUR|GBP|USD)的第二个示例。这意味着“EUR”或“GBP”或“USD”。

如果您有任何其他问题,请随时提出。