正则表达式在测试时运行良好,但在我的页面中不行

时间:2014-01-03 20:36:46

标签: php regex currency

在Regex测试页面上进行测试时,下面的正则表达式适用于所有货币。

虽然在我的页面中,它只适用于$ currency。

我为不同的角色集改变了MetaTag,没有运气。

可能有什么不对?

if (preg_match_all('([£€$¥]([ 0-9]([ 0-9,])*)(\.\d{2})?|([0-9]([0-9,]))(\.\d{2})?([pcm]|bn| [mb]illion))', $tout, $matches))

我想提取以下任何数量(没有空格)任何4个货币符号。

1 个答案:

答案 0 :(得分:1)

您正在使用的表达式是有效的,并且似乎与预期的输出匹配。也就是说,如果文件保存为UTF-8。

如果输入采用不同的编码,则无法正常工作。此外,如果输入确实是UTF-8但是源if不是,则正则表达式似乎会失败,因为它会尝试匹配不同的字符(非UTF-8编码等价物)。