PHP正则表达式在文本之前获取数字

时间:2014-04-10 01:37:17

标签: php regex match

有人可以用我的常规表达式帮助我吗?

这是我的正则表达式:

(?:\d*(\,)\d*)(\,\d*)?(\,\d*)?(\,\d*)?

这是我的测试数据:

  

1~2,906,730 RX

     

1-。'2,733,975 Rx

     

/ 132,882 RX mu uuu Au

     

' 2(* __ / 182 rX .... 212

我需要在' RX'之前匹配数字。或者' rX'或者' Rx'。 使用上面的代码,最后一行中的数字不会匹配,因为它错过了','。

我相信有更好的方法可以做到这一点。现在,我的正则表达式甚至不检查它是否跟随“RX'。

任何帮助将不胜感激! 解决方案可能会在PHP代码中发布。

1 个答案:

答案 0 :(得分:3)

我认为这样做会:

preg_match('/\d{1,3}(?:,\d{3}+)*(?= rx)/i', $data, $match);

?=positive lookahead - 它要求此群组遵循之前的正则表达式。 i使正则表达式不区分大小写,因此它将匹配RXrx或任意组合。

DEMO