2014-09-06 50 views
-2

我需要的正則表達式匹配的模式正則表達式匹配一切NOT +或 - 後面跟着一個或多個數字

「發現一切不是開頭後緊跟零或一個+或 - 標誌由一個換行符分隔回線數字「。

這樣做的相反:

[+ - ] [0-9] +

除了不相當的工作,因爲它不會刪除+或 - 在一個字符串的中間發現。

更新的例子和語言:

  • -111243(符合無)
  • -113C45(符合C)
  • 434(符合無)
  • D356-295U(匹配DU)
  • 93 * &#94(匹配度* &#)
  • 432 42(匹配空間+)
  • + 432 + 42(+匹配在中間,而不是在+開頭)
  • 22dd(匹配DD)

我想用它作爲替換所有命令刪除任何非除有符號整數或無符號整數外的有效字符。

這是PCRE REG-EXS http://www.pcre.org/

+1

「發現一切不是由空格或換行分隔回報開頭的行與恰好爲零或一個+或 - 符號跟位數。」真的不清楚,你能舉一些例子嗎? – Catalyst 2014-09-06 18:40:06

+1

哪種語言? – revo 2014-09-06 20:37:44

回答

4

更新(基於評論)

這是一個Perl兼容的一個包括負回顧後

\D+(?<!^[+-]) 

你可以看到比賽here

enter image description here

+0

非常接近,唯一的問題是(我沒有指定這個用例)是非數字字符終止字符串的地方。例如。 22dd! – 2014-09-06 20:56:17

+0

@MichaelRyanSoileau然後使用'[^ ​​\ d] +(?<!^ [+ - ])' – revo 2014-09-06 21:00:13

+0

@AdamSmith是的,謝謝提及。兩者都是一樣的。 – revo 2014-09-06 21:05:12