我正在读取一些文本,并希望将它分割成一个数组。我的目标是能够将它分成由停用词(被搜索引擎忽略的词,如'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. 基于单词分割字符串
- 3. 分割字符串由大写单词
- 4. 分割字符串后得到单词
- 5. 用JavaScript分割字符串
- 6. 将字符串分割成Ocaml中的单词字符列表
- 7. javascript,分割字符串,并显示一个单词的大胆
- 8. 使用单词作为分隔符分割字符串
- 9. 的Javascript:分割字符串
- 10. JavaScript的分割字符串
- 11. 的Javascript分割字符串
- 12. 如何用JavaScript正则表达式分割字符串中的单词?
- 13. Javascript字符串分割
- 14. Javascript字符串分割
- 15. 如何在php中用单词分割字符串?
- 16. 分割字符串中的单词的Java
- 17. 分割字符串,并添加连字符单词之间
- 18. 使用单词作为C++中的分隔符来分割字符串
- 19. 使用javascript的分割字符串
- 20. 的Javascript分割字符串用空格
- 21. 分割单词的第一个字符
- 22. 的Makefile如何分割字符串为单个单词?
- 23. 分割包含单词和数字的字符串
- 24. 用javascript分割字符串2次
- 25. 分割字符串数组使用javascript
- 26. 使用Javascript - 字符串分割
- 27. 使用JavaScript字符串分割
- 28. 使用javascript分割地址字符串
- 29. 分割字符串,并使用JavaScript
- 30. 在javascript中分割字符串
这很完美,不知道'split()'带了一个正则表达式,谢谢。 – pettazz 2010-11-12 20:15:37
是单个字符的助手。我已经更新了我的答案以包含单词边界。 – 2010-11-12 20:21:13
杰森 - 你的答案不起作用。 – user113716 2010-11-12 20:26:23