Ehr*_*ryk 6 javascript regex cpu-word node.js
我有一个 nodejs 脚本,它读入一个文件并计算词频。我目前将每一行输入一个函数:
function getWords(line) {
return line.match(/\b\w+\b/g);
}
Run Code Online (Sandbox Code Playgroud)
这几乎匹配所有内容,除了它错过了收缩
getWords("I'm") -> {"I", "m"}
Run Code Online (Sandbox Code Playgroud)
但是,我不能只包含撇号,因为我希望匹配的撇号是单词边界:
getWords("hey'there'") -> {"hey", "there"}
Run Code Online (Sandbox Code Playgroud)
有没有办法捕获收缩同时仍然将其他撇号视为单词边界?
我相信您可以使用正则表达式得到的最接近的结果是,line.match(/(?!'.*')\b[\w']+\b/g)但请注意,如果单词和 a 之间没有空格',它将被视为缩写。
正如 Aaron Dufour 提到的,正则表达式本身无法知道这I'm是一个收缩但hey'there实际上不是。
见下文:

| 归档时间: |
|
| 查看次数: |
4118 次 |
| 最近记录: |