2013-04-10 84 views
4

如何製作只匹配r.js或build.js但不匹配router.js(例如)的正則表達式?
我提出了這個問題:/^r.js$|^build.js$/但我覺得有一種方法可以刪除^和$。如果我刪除它們,router.js會得到匹配。正則表達式a或b

+0

爲什麼要刪除'^'和'$'? – 2013-04-10 20:41:46

+0

我正在尋找一種方法讓它看起來更好..如果有的話。 – Naor 2013-04-10 20:48:44

+0

誰-1我和爲什麼? – Naor 2013-04-10 20:49:15

回答

6

嘗試:

/^(r|build)\.js$/ 

''應該逃脫。如果^被刪除,它將匹配router.js,如果刪除$,它將匹配r.jsx。所以他們是需要的。

+0

嗯,從技術上說,如果你確實是一個點,逃避這個點是好的做法,但是因爲點匹配任何東西,它仍然會匹配 - 但它可以比預期的匹配更多。 – 2013-04-10 20:42:29

+1

@KennethK。不,從技術上來說*這不是一個好習慣,不逃避這一點是不正確的。實際上,差別有時是微不足道的。如果正則表達式接受太多或太少,技術上是不正確的。 – femtoRgon 2013-04-10 20:57:21

+0

@femtoRgon同意。在說「好習慣」時,我更傾向於角色的效用。如果我在文本編輯器中搜索某個字符串,並且我知道格式爲'build * js'的字符串只能字面上爲'build.js',那麼使用轉義字符還是非轉義字符並不重要點。但是,如果我使用該模式來驗證用戶輸入,那麼使用哪一個肯定很重要。這回到我的,「但它可以比預期更匹配」的評論和你的「差異有時微不足道」的評論。 – 2013-04-10 21:07:38

相關問題