2017-09-13 110 views
0

我有一个字符串,我只想取只包含整数值而不是浮点或字符的匹配字。Preg匹配不匹配

例子:

2.0 Test map 
2.0 Your Word 150 
2.0 Your 150 Word 

从蛰头没有采取,但第二个字符串获得150

我使用/\b([0-9])\b/i但不起作用

+0

我建议匹配并且只能匹配其他数字块:'preg_match_all('〜\ d * \。\ d +(?: e [ - +]?\ d +)?(* SKIP)(* F)| \ d +〜i ',$ s,$ matches)',参见[demo](https://regex101.com/r/I1gj8I/1)。 –

+0

你可以使用lookarounds:['(?<= \ s | ^)\ d +(?= \ s | $)'](https://regex101.com/r/9lI0HS/3) – anubhava

回答

0

您还需要忽略.,你不想浮点数:尝试以下表情

/(?<![\d.])[0-9]+(?![\d.])/ 
+0

'(?<! [\ d。])[0-9] +(?![\ d。])'将匹配'1.23 + e345'中的'345'。当然,这对OP来说可能不是问题,只是FYI。 –