我正在讀取一些文本,並希望將它分割成一個數組。我的目標是能夠將它分成由停用詞(被搜索引擎忽略的詞,如'a'''等)分隔的短語,以便我可以在我的API中搜索每個單獨的短語。因此,例如:'The cow's hat was really funny'
將導致arr[0] = cow's hat
和arr[1] = funny
。我已經有一組停用詞了,但是我無法真正想到如何實際上通過其中的每個/任何單詞進行實際分割,而無需編寫一個非常慢的函數來遍歷每個單詞。用Javascript中的單詞分割字符串
1
A
回答
2
使用split()
。它需要一個正則表達式。下面是一個簡單的例子:
search_string.split(/\b(?:a|the|was|\s)+\b/i);
如果你已經擁有的停止字陣列,可以使用join()
建立正則表達式。請嘗試以下操作:
regex = new RegExp("\\b(?:" + stop_words.join('|') + "|\\s)+\\b", "i");
工作示例http://jsfiddle.net/NEnR8/。 注意:它可能是最好的替換這些值比分裂它們,因爲有空數組元素從這個結果。
1
快速和骯髒的方式將取代「停止詞」具有一些獨特的字符(例如& & &)字符串,然後根據這一獨特性格分裂。
例如。
var the_text = "..............",
stop_words = ['foo', 'bar', 'etc'],
unique_str = '&&&';
for (var i = 0; i < stop_words.length; i += 1) {
the_text.replace(stop_words[i], unique_str);
}
the_text.split(unique_str);
2
這對您的關鍵字不區分大小寫.split()
,由字邊界包圍。
var str = "The cow's hat was really funny";
var arr = str.split(/\ba\b|\bthe\b|\bwas\b/i);
您最終可能會在Array中出現一些空項目。爲了壓縮它,你可以這樣做:
var len = arr.length;
while(len--) {
if(!arr[len])
arr.splice(len, 1);
}
+0
+1用於壓縮數組,這是使用'split()'解決方案的問題。 – 2010-11-12 20:42:14
相關問題
- 1. 分割字符串由大寫單詞
- 2. 將字符串分割成Ocaml中的單詞字符列表
- 3. javascript,分割字符串,並顯示一個單詞的大膽
- 4. JavaScript的分割字符串
- 5. 的Javascript分割字符串
- 6. 如何用JavaScript正則表達式分割字符串中的單詞?
- 7. 使用javascript的分割字符串
- 8. 的Javascript分割字符串用空格
- 9. 的Makefile如何分割字符串爲單個單詞?
- 10. 分割字符串,並使用JavaScript
- 11. 使用Javascript - 字符串分割
- 12. 在JavaScript中分割字符串
- 13. 分割字符串在JavaScript中
- 14. 在javascript中分割字符串
- 15. 在JavaScript中分割此字符串
- 16. 在JavaScript中分割字符串
- 17. 在javascript中分割字符串一次?
- 18. 在javascript中分割字符串
- 19. 如何在javascript中分割字符串?
- 20. 字符串分割到各個單詞的Java
- 21. 在可能的英文單詞邊界上分割字符串
- 22. 分割使用boost ::字符串分割
- 23. 的JavaScript解析/分割字符串
- 24. 的Javascript JSON字符串分割成
- 25. JavaScript的字符串分割如何?
- 26. 使用indexOf&substring字符串在字符串中分離單詞
- 27. 字符串中的分割字符
- 28. 分割字符串,保留HTML標記和單詞
- 29. 分割字符串,同時保留整個單詞
- 30. 想要在某個單詞後分割一個字符串?
這很完美,不知道'split()'帶了一個正則表達式,謝謝。 – pettazz 2010-11-12 20:15:37
是單個字符的助手。我已經更新了我的答案以包含單詞邊界。 – 2010-11-12 20:21:13
傑森 - 你的答案不起作用。 – user113716 2010-11-12 20:26:23