2015-11-03 55 views
-1

我分裂我的這個詞串「由」爲了得到一個數組,它是分割字符串選擇性地標記

[<title>, <date>], 

其中<日期>是一個可選項目。

因此,舉例來說,如果我有一句話「在週五得到蛋」,將它分成

[get eggs, friday]. 

但是,如果標題中含有「被」字,它會被分割,以及,例如「由星期五寒冷的海灘」給出

[chill, the beach, friday] 

這不是我想要的。

而且,因爲我的日期是可選的,「寒意由上海灘」會給我

[chill, the beach] 

我沒想到周圍的最後分裂「由」而已,但這個例子證明,這難道不工作,因爲最後的「by」在標題中。

我目前正在使用Java正則表達式和命令String.split(...)。反正有沒有想要得到我想要的東西,或者這是不可能的,而不必逃避前面的「by」(「星期五在海灘上寒意」,然後在拆分後刪除「\」)?

回答

1

下面的正則表達式會將字符串拆分爲兩個,僅基於最後存在的分隔符by,後面緊跟一個單詞。

string.split("\\s+by\\s+(?=\\S+$)"); 

包括所有可能一天的超前內。

string.split("\\s+by\\s+(?=(?:friday|monday|saturday)$)"); 
+0

我可以知道原因嗎? –

+0

或做匹配而不是拆分https://regex101.com/r/zZ1gC1/2 –