javaScript 正则将英文、日文单词拆分成数组?
求正则表达式,可以将英文、日文、韩文的句子按单词拆分成数组。在编辑页面可以提前判断是什么类型的语言,然后想根据不同语言选择相应的正则。
具体需求:
英文例句:So we'd do a thorough clean of all surfaces in each room, and polish them where necessary.想把类似( we'd)这种单词组合整体保留下来不拆分。其余的去除标点符号,按单词拆分
日文例句:時間が過ぎて、あっという間に冬休みは過ぎてしまった。冬休みの生活を思い出して、嬉しくなった!去除标点,把单词拆分成数组。
韩语例句:세상에서 가장 큰 시간 낭비가 아니던가요?去除标点,按空格把单词拆分成数组。
回复
1个回答

test
2024-07-10
英文 可以使用 String.prototype.split()
方法将英文句子拆分为单词。
例如,以下代码将英文句子拆分为单词:
function splitWords(str) {
return str.replace(/[^\w\s]/gi, '').split(/\s+/);
}
输出结果为:
['So', 'wed', 'do', 'a', 'thorough', 'clean', 'of', 'all', 'surfaces', 'in', 'each', 'room', 'and', 'polish', 'them', 'where', 'necessary']
日语没有“符号”断词,可以借助日语的词法分析器进行拆分,比如 atilika。
韩文单词分隔符通常是一个或多个空格字符。然而,在某些情况下,韩文单词之间可能不存在空格,因此可能需要使用其他方法来分割韩文字符串。
例如,可以使用正则表达式,具体方法为使用正则表达式匹配韩文字符串中的每个字,并使用分割符将它们分割开。
以下是使用正则表达式分割韩文字符串的代码:
function splitSentence(sentence) {
// 韩文字符正则表达式
const koreanCharRegex = /[\u1100-\u11FF|\u3130-\u318F|\uA960-\uA97F|\uAC00-\uD7AF|\uD7B0-\uD7FF]+/g;
return sentence.match(koreanCharRegex);
}
const koreanSentence = "세상에서 가장 큰 시간 낭비가 아니던가요?";
console.log(splitSentence(koreanSentence));
输出结果
['세상에서', '가장', '큰', '시간', '낭비가', '아니던가요']
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容