我想用Javascript(node.js)標記句子中的單詞,刪除非單詞字符(點,逗號,句號,問號等) ,考慮到UTF-8(英文,拉丁文,希臘文,西里爾文,日文等)和數字中的所有現有字母表,這意味着我需要一種方法來了解某個字符是單詞的一部分還是符號。例如:在UTF-8中用單詞以UTF-8編碼句子用特殊字符
españa.es 4*5 Rußland Citroën, 東京 iphone-pro5
應返回的數組:
[españa, es, 4, 5, Rußland, Citroën, 東京, iphone, pro5]
我使用以下正則表達式:
[0-9A-Za-zªº\u00B5\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02AF\u02B0-\u02C1\u0370-\u0374\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03FF\u0400-\u0481\u048A-\u0523]+
0-9A- ZA-Z(數字和英文字母ERS)
ªº(順序的指標)
\ u00B5(微符號)
\ u00C0- \ u00D6 \ u00D8- \ u00F6 \ u00F8- \ u02AF(非英語拉丁字母)
\ u02B0- \ u02C1(改性劑字母)
\ u0370- \ u0374 \ u0376- \ u0377 \ u037A- \ u037D \ u0386 \ u0388- \ u038A \ u038C \ u038E- \ u03A1 \ u03A3- \ u03FF(希和科普特字母)
\ u0400- \ u0481 \ u048A- \ u0523(西裏爾字母)
是否有其他更容易或更完整地在文本分割的話嗎?
使用XRegExp:https://jsfiddle.net/uhwt8e4k/ –
爲什麼不只是通過非單詞字符(它們在所有語言中都是相同的)而不是匹配單詞字符進行分割? – hindmost
@最後,它不是那麼容易,例如'\ u00D7(×)','\ u00F7(÷)','\ u1f600()','1f4a9()'是符號,不能是字的一部分在UTF-8中有很多這些符號) – greuze