2013-02-18 230 views
1

我有一個文本輸入,這將是像下面正則表達式刪除連字符

7 - BMW 550i 

輸入端。如果用戶輸入這個,我該如何使用正則表達式來去除的右邊的所有內容破折號字符,所以我留下的是第一個數值。

我已經試過這樣:

-?\\d+ 

但是,如果像例子中,我給它會得到最終的數字。

+0

我試過這個。 ( - ?\\ d +),但如果像我給它的例子得到結束數 – user667430 2013-02-18 10:27:49

+0

正則表達式用於匹配模式不去除。 – 2013-02-18 10:28:41

+0

@CodeEnthusiastic你會建議我做什麼? – user667430 2013-02-18 10:29:28

回答

1

這應該工作:

(\d+)\s*- 

使用$1讓你的結果。

例如,在Perl,使用:

my ($number) = ($str =~ /(\d+)\s*-/); 

RegexPlanet Online Demo

-2

沒有使用正則表達式,有很多更有效的方法來做到這一點,我建議你看看這個方向。

+2

只是一個建議:給這樣的負面答案不是個好主意 - 它們幾乎肯定會被低估。如果有人要求正則表達式,他們可能就是這個意思。如果你不喜歡它,說服的唯一方法就是展示解決方案,並解釋爲什麼這是個壞主意。 – mvp 2013-02-18 10:35:31

+0

對於在做某事時尋求幫助時不會花費超過一秒鐘的時間來提供任何信息的問題,我很滿意。如果有人要求正則表達式提供' - ?\ d +'作爲他們試用的正則表達式,那麼當你說他們正在尋找正則表達式時,他們可能會說他們是誰?最後,我希望給他們一個更好的方法來實現這個目標,或者至少讓他們朝正確的方向發展,但是根本沒有提供這樣的信息。 – blackarm 2013-02-18 10:39:52

+1

那麼,如果每個人都很聰明,知道一切,爲什麼我們需要這樣呢?這是這個網站的重點 - 人們來這裏是因爲他們不知道。是的,他們通常不想閱讀文檔 - 但你無法擊敗人性。無論如何,人們必須發展相當厚的皮膚纔不會在這裏被冒犯 - 你也應該如此。 – mvp 2013-02-18 10:48:09