2014-07-15 104 views
0

我想匹配像下面的模式的数量在任何位置的任何长数和小数点:基本上正则表达式来匹配

1.234 < x < 33.34 
14123 <= x < 55656 

,我想无论多久匹配任何标记,并且可选不管数字在哪里,都是十进制的。我觉得<,<=很容易。但是,我无法弄清楚如何匹配数字。

这里是我的正则表达式,只有匹配的标志和 “X”:(<=?)x(<=?)

回答

1

没关系,我得到了答案:

\d+(?:.\d+)?(<=?)x(<=?)\d+(?:.\d+)?

+0

试试这个'\ d +(?:\。\ d +)?(<=?)x(<=?)\ d +(?:\。\ d +)?' –

+0

我在你的正则表达式中发现了两个错误。 1,不要在'.'之前使用'\ d *',因为它匹配**零**或更多的数字。 2,'.'代表任何charcater而非文字。 –

+0

使用Avinash Raj的模式,因为它允许'.'和其余数字是可选的。即使没有“。”,你的数字也需要额外的数字,这意味着单个数字的数字将无法匹配,例如, '1 nmclean