2016-05-18 76 views
1

我有以下字符串,我需要从中提取数字和“ - ”s。正则表达式来匹配字符串中的数字

51-Ratelle 6 5 11 - 1.5-5 - 1-0 - - - -

我使用下面的正则表达式以提取工作

(\+|-)?\d+(?:\.\d+)? 

电话号码,但这个意志给我只有51,6,5,11,1.5,-5,1,-0

我想提取“ - ”s也。

我尝试了几个替代方案,其中名为“Will-Ratelle”中的“ - ”,我想跳过。

任何有关这方面的帮助将不胜感激。

回答

2

您可以使用

[+-]?\d+(?:\.\d+)?|\B-\B 

regex demo

说明

  • [+-]?\d+(?:\.\d+)? - 比赛漂浮带或不带-+标志值(\d+比赛1+数字,和(?:\.\d+)?相符与1+ sigits 1或0次(任选地))
  • | - 或...
  • \B-\B - 独立连字符不对后或字之前站在(\B是非字边界)。
+1

这工作!!。非常感谢答案以及细节。 – SSQs

+0

很高兴为你工作。请考虑接受答案(请参阅[如何接受SO答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work))。 –