如何解决如何在JavaScript中解析文本中的单词?
| 在文本页面中,我想检查每个单词。当时阅读每个单词的最佳方法是什么?容易找到被空格包围的单词,但是一旦您解析出文本中的单词,它就会变得很复杂。 除了定义我自己的从文本中解析单词的方式之外,是否已经构建了某种东西来解析正则表达式或其他方法中的单词? 文字中的一些示例。 word word. word(word) word\'s word word\' \"word\" .word. \'word\' sub-word
解决方法
您可以使用:
text = \"word word. word(word) word\'s word word\' \\\"word\\\" .word. \'word\' sub-word\";
words = text.match(/[-\\w]+/g);
这将为您提供所有单词的数组。
在正则表达式中,\\w
表示any3ѭ,A-Z
,0-9
或_
中的任何字符。 [-\\w]
表示any2ѭ或-
的任何字符。 “ 10”表示这些字符出现1次或以上。
如果您想将单词定义为除上述表达式之外的其他内容,请在[-\\w]
字符类内添加组成您的单词的其他字符。例如,如果您希望单词也包含(
和)
,则将字符类设置为[-\\w()]
。
有关正则表达式的介绍,请访问regular-expressions.info,查看出色的教程。
,您正在谈论的是令牌化。至少可以说这是不平凡的,并且是主要搜索引擎上激烈的研究主题。有许多使用各种服务器端语言的开源令牌化库(例如,参见Stanford NLP和Lucene项目),但是据我所知,在JavaScript中什至没有与之接近的东西。您可能必须自己动手:)还是在服务器端进行处理,并通过AJAX加载结果?
,我在这里支持Richard的回答-但要补充一下-构建令牌生成器(imho)的最简单方法之一是Antlr;一些疯子为此建立了Javascript目标;这样一来,您就可以在网络浏览器中运行和执行语法(请在“运行时库”部分中查找)
我不会假装那里没有学习曲线。
,看一下正则表达式-您几乎可以定义所需的任何解析算法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。