2010-02-15 38 views
1

使用PHP preg_match()方法的Im。我有一个正则表达式匹配毫米长度的麻烦。数字长度可以是浮点数......这里是我正在处理的数据的一些例子;需要一个reg-ex来匹配mm的长度

1.0毫米

25.5毫米

3毫米

3毫米

3.3毫米

所以睡床简单的任何整数或浮点数由 “毫米” 具有或不具有之间的空白进行。

谢谢!

回答

1

尝试'/(\d+(?:\.\d+)?)\s*mm/'并且您将有$ 1中的数字。

说明:

  • (开始捕获组
  • \d+一个或多个数字
  • (?:开始非捕获组
  • \. litteral点
  • \d+一个或多个数字
  • )端非捕获组
  • ?非捕获组(“” +数字)可能不存在
  • )端捕获组
  • \s*零个或多个空格(或翼片,等)
  • mm文字“毫米”
+0

错字:一段时间过多。 – FMc

+0

@streetpc - 快到了!但是这个reg-ex也会在下面返回布尔值true; 1.2米 (它需要严格的回报率只在“MM”真) 可这REG-EX进行修改,以做到这一点? – robmcvey

+0

正则表达式包含一个litteral双“m”,所以它只能匹配“mm”。如果不是的话,你能把这段代码放进去吗? @FM修正了这一点,谢谢 –

1

你需要一个正则表达式吗?如果你在“123.122mm”上使用像floatval这样的东西,它应该给你123.122数字并忽略文本。