2011-10-05 26 views
1

需要一些幫助,正則表達式定期定界符表達

我怎麼能寫過濾分隔符(選項卡,逗號,分號)之間的所有內容的表達?所有的前/後空格必須一致。

例輸入

Abra Cadabra  ; Harry Potters,Magic Wand[tab]Sucks! 

匹配

[Abra Cadabra] 
[Harry Potters] 
[Magic Wand] 
[Sucks!] 

不希望

[Abra Cadabra  ] 

我想出了這個選擇的一切,但輸出要

\s*[,;\t\n]\s* 

有什麼辦法可以「反轉」它嗎?

+1

只需將您的正則表達式傳遞給「分割」函數即可。 –

+0

是的,這實際上是我最終做的,像一個魅力工作 – hampusohlsson

回答

1

至於簡單的匹配/搜索去,這一個seems working

[^,;\t ]+(?: +[^,;\t ]+)* 

BTW,我與凱文的評論表示贊同在那裏,我會使用類似

string.split(/\s*[,;\t]+\s*/)

0

有這樣的事情作爲negated character class(你必須向下滾動一下)。試試這個:

[^,;\t\n]* 

它在基於.NET的Expresso中工作。


與rubular東西玩,我覺得[^,;\t\n]*\b可以給你想要的東西......

+0

幾乎,但空間仍然存在 http://rubular.com/r/vOsVcMflrN – hampusohlsson

+0

如果你正在返回匹配的字符串,是否可以接受只是修剪前/後空格?如果常規空格字符不是分隔符,但不應該匹配,這會使這有點棘手。 – FrustratedWithFormsDesigner

+0

當然...我只是想看看是否有可能,因爲它會更有效,代碼更少:) – hampusohlsson

0

您應該能夠使用它。

\s[^,;\t\n]*\s*