有人可以用我的常规表达式帮助我吗?
这是我的正则表达式:
(?:\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代码中发布。
答案 0 :(得分:3)
我认为这样做会:
preg_match('/\d{1,3}(?:,\d{3}+)*(?= rx)/i', $data, $match);
?=
是positive lookahead - 它要求此群组遵循之前的正则表达式。 i
使正则表达式不区分大小写,因此它将匹配RX
,rx
或任意组合。