2016-05-18 74 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))。 –