我需要正則表達式來刪除所有非數字,而不是破折號(' - ')。 new RegExp('[^0-9-]')
似乎有用,但new RegExp('[\\D-]')
刪除短跑也。爲什麼這是不同的?RegExp:why [^ 0-9-]!= [ D-]?
回答
[^0-9-]
是「任何不是一個數字,或者是不是一個破折號
[\D-]
是」 anythign這不是一個數字,或者是一個破折號
的^
反轉整個[]
字符類,等等你的\D
版本,沒有反轉,所以-
是合法的匹配。
不是'[\\ D-]'''''''''''D'或'''是什麼?也許在問題中出現錯字,或者他從字符串文字中複製它。假設'\ D',答案是正確的。 –
@FelixKling我同意。 – simbabque
因爲在第二個破折號前沒有否定。 \D
(應該只有一個反斜槓)的意思是「所有非數字」,短劃線代表破折號。
\D
是^0-9
簡單的速記因爲你解釋你的第二個錯誤的正則表達式的含義。
在字符類的開頭的^
[^0-9-]
比賽在它指定的所有字符,具體什麼那不是0-9
而不是-
。而[\D-]
匹配任何不是數字,並且是-
。
當您在字符類([]
)中使用^
時,它表示「不在此類中的任何內容」。 \D
只是一個特殊的序列,意思是「任何不是數字的東西」。
所以:
[^0-9-]
匹配任何不是一個數字或-
。
[\D-]
意味着「任何非數字字符(或-
,這是已經非數字),沒有必要在這裏[]
,這是一樣的只是\D
本身。
- 1. XML XSLT%0A%09%09?固定?
- 2. 如何使用php重新排列日期(09-09-2013)到(2013-09-09)?
- 3. ValueError:time data'1/1/2016 00:09:55'與格式'%m /%d /%y%H:%M:%S'不匹配'
- 4. dataGridView顯示2016-09-01而不是2016-09-01 00:00
- 5. 如何閱讀09/09/2017完全從xls使用php?
- 6. Convert.ToDateTime不能超過09:59?
- 7. 什麼是gsub(/(\ d {4})\ /(\ d \ d)\ /(\ d \ d)\ /(。*)/,'\ 1- \ 2- \ 3- \ ) 意思?
- 8. TR 「[1-9]」, 「[ '01' - '09']」 不正常
- 9. 使用正則表達式識別窗體\ d \ d \ d \ d \ d \ d的日期
- 10. Android字符串日期「2017-09-04T07:09:30.269 + 00:00」轉換爲長
- 11. 在應用PATCH_SUPEE-9767_CE_1.9.3.0_v1-2017-05-25-09-09-56.sh in magento時出現問題1.9.2.4
- 12. 如何在PHP中使用crypt($ pass,'$ 2y $ 09 $ salt')=== crypt($ pass,crypt($ pass,'$ 2y $ 09 $ salt'))?
- 13. 在Magento 1.9.2.4上安裝PATCH_SUPEE-9767_CE_1.9.3.0_v1-2017-05-25-09-09-56時出錯
- 14. 如何使SimpleDateFormat中的格式2015-09-04T11:30:06-0500到2015-09-04T11:30:06-05:00
- 15. 區別:d [count]和d [count]
- 16. Convert.ToDateTime(D)與(DateTime)相比D
- 17. 正則表達式:/(\d*)/(\d*)/(.*[0-9a-zA-Z])EXCEPT「page」
- 18. 此代碼崩潰輸入08和09
- 19. python語法錯誤30/09/2013
- 20. socket.io-client v.09到v1.0連接問題
- 21. 在AX上播放聲音09
- 22. RegExp驗證字符串「900 - 09 999」
- 23. 如何編輯iWeb 09博客模板?
- 24. python不接受09但接受07
- 25. Crontab設置18:00至09:00
- 26. VB datetimepicker格式爲09-SEP-2012
- 27. 無法從MS Navision的09 R2
- 28. Expression Blend的行爲混合09包庫
- 29. Qt與Visual Studio v.09中的C#/ .NET?
- 30. 匹配的行\ d的開始或\ d \ d
因爲'[\ D-]'是'匹配任何非數字符號或破折號',而'[^ 0-9-]'是'匹配任何不是數字或破折號的符號' – raina77ow
'[\ D-]相當於'[\ D]',因爲'-'已經與'\ D'匹配。 – Blender
夥計們,這是JS:顯然'\\ D'是它如何寫入字符串文字,而不是正則表達式之一它不會匹配所有的數字),不同之處是值得一提的,但是。) – raina77ow