2014-11-08 85 views
1

我正在使用javascript .replace()從逗號分隔的單詞列表中刪除一個單詞,並且有一個可行的解決方案,但它很笨拙,我認爲必須有更好的。用逗號分隔的列表替換單詞的正則表達式

正則表達式的樣子:

/,word1|word1,?/ 

把手龍頭,嵌入式和尾隨的情況下,並刪除逗號例如正確的號碼。

word1,word2,word3 
word2,word1,word3 
word2,word3,word1 
All result in word2,word3 
word1 on its own is removed completely 

有沒有辦法做到這一點,沒有重複的word1在正則表達式模式?

+1

如果你有正則表達式的工作,爲什麼改變它,這對我來說似乎很好? – adeneo 2014-11-08 15:14:29

+0

http://codereview.stackexchange.com – 2014-11-08 15:15:10

+0

我不認爲你可以找到更好的正則表達式。 – Toto 2014-11-08 15:50:42

回答

0

有沒有真正的更好或更短的模式來做到這一點。所有你能做的就是通過添加單詞邊界,以避免假陽性,其中逗號可能會丟失:

,word1\b|\bword1\b,? 

如果你要處理大量字符串,並且僅在第一個字母是不是太頻繁,你可以嘗試使用的第一個字符識別TECHNIC減少,該模式將被測試的位置數:

(?=[,w])(?:,word1\b|\bword1\b,?) 

(請注意,你需要測試,在現實生活中,看看它是否真的是提供有益的)

其他沒有正則表達式的方法

如果你的目標字符串只是一個逗號分隔列表,使用split/join保持最佳解決方案。

相關問題